home *** CD-ROM | disk | FTP | other *** search
/ Atari Forever 4 / Atari Forever 4.zip / Atari Forever 4.iso / SERIE_AI / AI_053 / SED / DOC / SED_DIFF.TXT < prev    next >
Text File  |  1998-03-14  |  82KB  |  2,364 lines

  1. 9c9
  2. < '       97828 Marktheidenfeld            71134 Aidlingen
  3. ---
  4. > '             97828 Marktheidenfeld            71134 Aidlingen
  5. 13c13
  6. < '             Anton Stepper @ Maus Wü          Claus Brod @ BB
  7. ---
  8. > '             Anton Stepper @ WÜ               Claus Brod @ BB
  9. 57a58,72
  10. > ' 1994-12-26 RS: Modifikationen von Rainer Seitel @ KA
  11. > '                Mindestens folgende Fehler gibt's noch:
  12. > '                In der Resource beim Menüeintrag »Dateienliste« die Punkte weg.
  13. > '                In der Resource bei Dateiinfo Uhrzeit-Feld auf 6 Ziffern. Sonst werden beim Schreiben des Dateiinfo die Sekunden immer auf 0 gesetzt.
  14. > '                Bei mehr als 32767 Clustern klappt »Dateienliste« nicht.
  15. > ' 1995-02-05 RS: Cluster zurück geht auch wenn dieser hintendran liegt.
  16. > '                Größter Clusterindex ist jetzt cpd%+1.
  17. > '                SED kommt eventuell ganz mit einer FAT zurecht.
  18. > '                Partitionen löschen gibt defekte Cluster nicht mehr frei.
  19. > '                2 Vorschläge vom Ende übernommen:
  20. > '                In Dialogboxen können []@{}\ eingegeben werden.
  21. > '                Bei FAT-Graph Anzahl der Cluster hinter dem Dateinamen.
  22. > ' 1995-04-04 RS: SED sollte jetzt wirklich mit mehr als $FFFE Sektoren zurechkommen.
  23. > '                FAT prüfen ordentlicher.
  24. > '                In disc_save do_list auskommentiert.
  25. 68c83
  26. < base_look               ! Applikation ?
  27. ---
  28. > base_look               ! Applikation?
  29. 104c119
  30. <   '     fürs 2.Fenster
  31. ---
  32. >   '     fürs 2. Fenster
  33. 127,128c142,143
  34. <   rate%(5)=3                    ! A=3msec
  35. <   rate%(6)=0                    ! B=6msec
  36. ---
  37. >   rate%(5)=3                    ! A = 3 ms
  38. >   rate%(6)=0                    ! B = 6 ms
  39. 211c226
  40. <   minad%=0              ! 1.Zeichen im Font
  41. ---
  42. >   minad%=0              ! 1. Zeichen im Font
  43. 221a237,241
  44. >   IF ROL&(GEMDOS(48) AND &HFFFF,8)<&H15 THEN
  45. >     dos_max_sektors%=32767  !größte Anzahl Sektoren vor GEMDOS 0.15
  46. >   ELSE
  47. >     dos_max_sektors%=65535  !größte Anzahl Sektoren ab GEMDOS 0.15 (TOS 1.04)
  48. >   ENDIF
  49. 237,238c257,258
  50. <   fg$="?VDx."                   ! Für Anzeige in FAT-GRAPH
  51. <   ' ? = verklebt, V = Verwaltung, x=Leiche, D = defekt, . = frei
  52. ---
  53. >   fg$="?VDX."                   ! Für Anzeige in FAT-GRAPH
  54. >   ' ? = verklebt, V = Verwaltung, X = Leiche, D = defekt, . = frei
  55. 257c277
  56. <   DATA OK,Fehler beim Selectieren,Defaultfehler (Chaos),ungültige Phase
  57. ---
  58. >   DATA OK,Fehler beim Selektieren,Defaultfehler (Chaos),ungültige Phase
  59. 372,373c392,393
  60. <   tt%=@search_cookie("_MCH",0)  ! ersatz für  TT?
  61. <   tt!=(tt% DIV 65536) AND 2
  62. ---
  63. >   tt%=@search_cookie("_MCH",0)  ! Ersatz für  TT?
  64. >   tt!=(tt% DIV 65536)>2
  65. 425c445
  66. <   a&=OB_Y(a.lert%,alrti1&)              ! Y-POS ICON 2-5  = Y-POS ICON 1 !
  67. ---
  68. >   a&=OB_Y(a.lert%,alrti1&)              ! y-Pos ICON 2-5  = y-Pos ICON 1 !
  69. 428c448
  70. <     OB_Y(a.lert%,i&)=a&                 ! Y-Pos
  71. ---
  72. >     OB_Y(a.lert%,i&)=a&                 ! y-Pos
  73. 470c490
  74. <   LOCAL a$
  75. ---
  76. >   ' LOCAL a$
  77. 479c499
  78. <     ~@alrt(3,"Offene Dateien können nicht erkannt werden!|Das kann zu Datenverlust führen!|Bitte CHK_OFLS installieren !",1,"Verstanden")
  79. ---
  80. >     ~@alrt(3,"Offene Dateien können nicht erkannt werden!|Das kann zu Datenverlust führen!|Bitte CHK_OFLS installieren!",1,"Verstanden")
  81. 482c502
  82. < PROCEDURE chk_ofls    ! Datei_offen_überwacher installiert?
  83. ---
  84. > PROCEDURE chk_ofls    ! Datei_offen_Überwacher installiert?
  85. 517c537
  86. < ' Programmen geöffnet ist. Dazu wird CHKOFLS benötigt.
  87. ---
  88. > ' Programmen geöffnet ist. Dazu wird CHK_OFLS benötigt.
  89. 527,532c547,562
  90. <   file_is_open !           Datei, wenn geöffnet, schließen
  91. <   IF chk_ofls%>0 !         Zeiger auf Struktur "OFLS", ver, data ...
  92. <     a&=@ofls(drv%) !       OFLS lesen
  93. <     IF a&>0 AND a&<>&HFFFF
  94. <       IF @alrt(1,"Achtung: |möglicher Datenverlust!| "+STR$(a&)+" geöffnete Datei(en)! ",1,wa$)=2
  95. <         RETURN -1
  96. ---
  97. >   file_is_open           ! Datei, wenn geöffnet, schließen
  98. >   a&=GEMDOS(309,1,drv%)  ! Dlock(sperren)
  99. >   IF a&<>-32
  100. >     IF a&<0
  101. >       ~@alrt(1,"Medienwechsel nicht möglich,|da auf Laufwerk "+CHR$(drv%+64)+": Dateien|offen sind oder es gesperrt ist!",1,"Abbruch")
  102. >       RETURN -1
  103. >     ENDIF
  104. >     ~GEMDOS(309,0,drv%)  ! Dlock(freigeben)
  105. >     RETURN 0
  106. >   ELSE
  107. >     IF chk_ofls%>0       ! Zeiger auf Struktur "OFLS", ver, data ...
  108. >       a&=@ofls(drv%)     ! OFLS lesen
  109. >       IF a&>0 AND a&<>&HFFFF
  110. >         IF @alrt(1,"Achtung: |möglicher Datenverlust!| "+STR$(a&)+" geöffnete Datei(en)! ",1,wa$)=2
  111. >           RETURN -1
  112. >         ENDIF
  113. 534a565,566
  114. >     ~C:utis%(&H100+drv%) ! Medienwechsel auslösen
  115. >     RETURN 0
  116. 536,537d567
  117. <   ~C:utis%(&H100+drv%) !   Medienwechsel auslösen
  118. <   RETURN 0
  119. 605c635
  120. < FUNCTION was_ist                        ! Abbruch ?
  121. ---
  122. > FUNCTION was_ist                        ! Abbruch?
  123. 629,639d658
  124. < FUNCTION term$(a$)                      ! HEX-DEC-BIN wandeln
  125. <   .| Aufruf in : get_val-1,hard_read-3,disc_info-1,fat_bearbeiten-9,
  126. <   IF LEFT$(a$,1)="$"
  127. <     RETURN STR$(VAL("&H"+RIGHT$(a$,LEN(a$)-1)))
  128. <   ELSE
  129. <     IF LEFT$(a$,1)="%"
  130. <       RETURN STR$(VAL("&X"+RIGHT$(a$,LEN(a$)-1)))
  131. <     ENDIF
  132. <   ENDIF
  133. <   RETURN a$
  134. < ENDFUNC
  135. 734c753
  136. <   LOCAL p$,s$,t$
  137. ---
  138. >   LOCAL p$,s$,t$,i%
  139. 741,748c760,786
  140. <   CARD{GCONTRL}=90
  141. <   CARD{GCONTRL+2}=0
  142. <   CARD{GCONTRL+4}=2
  143. <   CARD{GCONTRL+6}=2
  144. <   CARD{GCONTRL+8}=0
  145. <   {ADDRIN}=VARPTR(p$)
  146. <   {ADDRIN+4}=VARPTR(s$)
  147. <   IF rom_version%>=&H104
  148. ---
  149. >   ADDRIN(0)=VARPTR(p$)
  150. >   ADDRIN(1)=VARPTR(s$)
  151. >   IF txt$="" THEN
  152. >     GOTO my_fsel_input_
  153. >   ENDIF
  154. >   IF CARD{LONG{GB+4}}<&H140 OR (CARD{LONG{GB+4}}>=&H200 AND CARD{LONG{GB+4}}<&H300)
  155. >     i%=LPEEK(&H5A0)                                ! FSEL-Cookie suchen
  156. >     IF i% THEN
  157. >       WHILE LPEEK(i%)
  158. >         IF LPEEK(i%+4)=CVL("FSEL")
  159. >           GOTO my_fsel_exinput_
  160. >         ENDIF
  161. >         ADD i%,8
  162. >       WEND
  163. >     ENDIF
  164. >     i%=LPEEK(&HB4)                                 ! Trap-13-Vektor untersuchen
  165. >     WHILE LPEEK(i%-12)=CVL("XBRA")
  166. >       ' Dateiauswahlbox von Martin Patzel, Edison-Utility von Eckard Krajewski
  167. >       IF LPEEK(i%-8)=CVL("FSmp") OR LPEEK(i%-8)=CVL("EUek")
  168. >         GOTO my_fsel_exinput_
  169. >       ENDIF
  170. >       i%=LPEEK(i%-4)
  171. >     WEND
  172. >   my_fsel_input_:
  173. >     GEMSYS 90
  174. >   ELSE
  175. >   my_fsel_exinput_:
  176. 750,752c788,793
  177. <     CARD{GCONTRL}=91
  178. <     CARD{GCONTRL+6}=3
  179. <     {ADDRIN+8}=VARPTR(t$)
  180. ---
  181. >     ADDRIN(2)=VARPTR(t$)
  182. >     GCONTRL(0)=91
  183. >     GCONTRL(1)=0
  184. >     GCONTRL(2)=2
  185. >     GCONTRL(3)=3
  186. >     GEMSYS
  187. 754,755d794
  188. <   GEMSYS
  189. <   '
  190. 759c798
  191. <   IF CARD{GINTOUT+2}=1
  192. ---
  193. >   IF GINTOUT(1)=1
  194. 793c832
  195. < FUNCTION no_protekt                     ! Schreibschutz hilft nix...
  196. ---
  197. > FUNCTION no_protekt                     ! Schreibschutz hilft nix ...
  198. 911c950
  199. <   RETURN VAL(@term$(@get_char$(tree%,obj&)))
  200. ---
  201. >   RETURN VAL(@get_char$(tree%,obj&))
  202. 1000c1039
  203. <     OB_Y(a.lert%,i&)=OB_H(a.lert%,0)-z.h%*2             ! Button Y-POS
  204. ---
  205. >     OB_Y(a.lert%,i&)=OB_H(a.lert%,0)-z.h%*2             ! Button y-Pos
  206. 1013c1052
  207. <   x%=OB_W(a.lert%,0)-(ab%+a%+z.b%*2)    ! 1.Button rechts
  208. ---
  209. >   x%=OB_W(a.lert%,0)-(ab%+a%+z.b%*2)    ! 1. Button rechts
  210. 1082c1121
  211. <         out(a$+"  "+HEX$(x%,8))
  212. ---
  213. >         out(a$+"  $"+HEX$(x%,8)+" "+MKL$(x%))
  214. 1172c1211
  215. <   ~@alrt(1,"Das geht nur im Datenfenster!",1,"Aha")
  216. ---
  217. >   ~@alrt(1,"Das geht nur im Datenfenster!",1," Aha ")
  218. 1176c1215
  219. <   ~@alrt(1,"Das geht nur im Textfenster!",1,"Aha")
  220. ---
  221. >   ~@alrt(1,"Das geht nur im Textfenster!",1," Aha ")
  222. 1493c1532
  223. <     IF (which& AND 1)>0                         ! TASTE gedrückt
  224. ---
  225. >     IF (which& AND 1)<>0                        ! TASTE gedrückt
  226. 1498c1537
  227. <       IF (kstate% AND 8)>0
  228. ---
  229. >       IF (kstate% AND 8)<>0
  230. 1504,1512d1542
  231. <         ELSE
  232. <           kling
  233. <         ENDIF
  234. <       ELSE
  235. <         IF key%>0
  236. <           ~OBJC_EDIT(tree%,edit_obj%,key%,idx&,2,idx&)  ! EDCHAR
  237. <         ENDIF
  238. <         IF (next_obj%<>0) AND ((next_obj%<>edit_obj%) OR (cont&=0))
  239. <           ~OBJC_EDIT(tree%,edit_obj%,0,idx&,3,idx&)     ! EDEND
  240. 1514a1545,1550
  241. >       IF key%>0
  242. >         ~OBJC_EDIT(tree%,edit_obj%,key%,idx&,2,idx&)  ! EDCHAR
  243. >       ENDIF
  244. >       IF (next_obj%<>0) AND ((next_obj%<>edit_obj%) OR (cont&=0))
  245. >         ~OBJC_EDIT(tree%,edit_obj%,0,idx&,3,idx&)     ! EDEND
  246. >       ENDIF
  247. 1535c1571
  248. <             IF ((mb& AND 2)=2) OR (ks& AND 8)>0
  249. ---
  250. >             IF ((mb& AND 2)=2) OR (ks& AND 8)<>0
  251. 1612c1648
  252. <     IF (theflag& AND flag&)>0
  253. ---
  254. >     IF (theflag& AND flag&)<>0
  255. 1615c1651
  256. <     IF (theflag& AND &H20)>0        ! LASTOB
  257. ---
  258. >     IF (theflag& AND &H20)<>0       ! LASTOB
  259. 1646c1682
  260. <   IF (kstate% AND 3)>0          ! Shift-Taste
  261. ---
  262. >   IF (kstate% AND 3)<>0         ! Shift-Taste
  263. 1652c1688
  264. <   IF (kstate% AND 8)>0          ! ALT gedrückt
  265. ---
  266. >   IF (kstate% AND 8)<>0         ! ALT gedrückt
  267. 1655c1691
  268. <     IF (kstate% AND 4)>0        ! CTRL
  269. ---
  270. >     IF (kstate% AND 4)<>0       ! CTRL
  271. 2051c2087
  272. <   IF fontnr%<=fonts%+neuefonts%                 ! Font gefunden ?
  273. ---
  274. >   IF fontnr%<=fonts%+neuefonts%                 ! Font gefunden?
  275. 2053,2055c2089,2091
  276. <     a%=@vst_point(scr_handle%,fontsx%)          ! die Grösse dazu
  277. <     IF a%<>fontsx%                              ! hat geklappt ?
  278. <       ~@alrt(3,"Fontgrösse "+STR$(fontsx%)+" nicht einstellbar!",1,"Aha")
  279. ---
  280. >     a%=@vst_point(scr_handle%,fontsx%)          ! die Größe dazu
  281. >     IF a%<>fontsx%                              ! hat geklappt?
  282. >       ~@alrt(3,"Fontgröße "+STR$(fontsx%)+" nicht einstellbar!",1,"Aha")
  283. 2181c2217
  284. <     '         Op,Strukt,   X-,Y-,Spalten
  285. ---
  286. >     '         Op,Strukt,   x-,y-,Spalten
  287. 2222c2258
  288. <         ALERT 3,"INF-Datei zu lang|Installiere DEFAULT.INF",1,"Aha",dum%
  289. ---
  290. >         ALERT 3,"INF-Datei zu lang!|Installiere DEFAULT.INF.",1," Aha ",dum%
  291. 2230c2266
  292. <     ALERT 1,"Installiere DEFAULT.INF",1,"Aha",dum%
  293. ---
  294. >     ALERT 1,"Installiere DEFAULT.INF.",1," Aha ",dum%
  295. 2330c2366
  296. <     fwritec(hdl%,STR$(fe%(1,1)*x%))     ! 2.Fenster
  297. ---
  298. >     fwritec(hdl%,STR$(fe%(1,1)*x%))     ! 2. Fenster
  299. 2361c2397
  300. <         ~@alrt(5,"Kein Speicher für HELP",1,"kein|Help")
  301. ---
  302. >         ~@alrt(5,"Kein Speicher für HELP!",1,"kein| Help ")
  303. 2368c2404
  304. <       ~@alrt(5,"HELP-Datei zu gross!",1,"Aha")
  305. ---
  306. >       ~@alrt(5,"HELP-Datei zu groß!",1," Aha ")
  307. 2452c2488
  308. <   CARD{scsi_komm%+8}=bps%       ! Blockgrösse
  309. ---
  310. >   CARD{scsi_komm%+8}=bps%       ! Blockgröße
  311. 2454c2490
  312. <   CARD{scsi_komm%+14}=cbytes%   ! Anzahl der Kommandobytes 6-10-12 ?
  313. ---
  314. >   CARD{scsi_komm%+14}=cbytes%   ! Anzahl der Kommandobytes 6-10-12?
  315. 2509c2545
  316. <       CARD{scsi_komm%+8}=512      ! Blockgrösse
  317. ---
  318. >       CARD{scsi_komm%+8}=512      ! Blockgröße
  319. 2582c2618
  320. <   ~@alrt(1,"Plattenfehler: |"+STR$(he%)+"  "+a$,1,"Aha")
  321. ---
  322. >   ~@alrt(1,"Plattenfehler: |"+STR$(he%)+"  "+a$,1," Aha ")
  323. 2601c2637
  324. <             block%=block_marke%-VAL(@term$(b$))
  325. ---
  326. >             block%=block_marke%-VAL(b$)
  327. 2604c2640
  328. <               block%=block_marke%+VAL(@term$(b$))
  329. ---
  330. >               block%=block_marke%+VAL(b$)
  331. 2608c2644
  332. <           block%=VAL(@term$(a$))
  333. ---
  334. >           block%=VAL(a$)
  335. 2722c2758
  336. <       IF (flg% AND 4)>0       ! Returnpuffer ansehen ?
  337. ---
  338. >       IF (flg% AND 4)>0       ! Returnpuffer ansehen?
  339. 2773c2809
  340. <       ~@alrt(3,"Das geht im Moment nicht |bei SCSI+VORTEX -Platten",1,"Abbruch")
  341. ---
  342. >       ~@alrt(3,"Das geht im Moment nicht|bei SCSI- und VORTEX-Platten.",1,"Abbruch")
  343. 2811c2847
  344. <     ~@alrt(1,"Diese Option ist nur bei |Adaptec-Controllern (ATARI-Modus) |anwendbar.",1,"Aha")
  345. ---
  346. >     ~@alrt(1,"Diese Option ist nur bei|Adaptec-Controllern (ATARI-Modus) |anwendbar.",1," Aha ")
  347. 2819c2855
  348. <   wwa%=@alrt(2,"Platte parken ?",0,"Parken|Entpark|Abbruch")
  349. ---
  350. >   wwa%=@alrt(2,"Platte parken?",0,"Parken|Entpark|Abbruch")
  351. 2879c2915,2916
  352. <       bsl_count%=MIN(5,bsl_count%)
  353. ---
  354. >       ' bsl_count%=MIN(5,bsl_count%)
  355. >       bsl_count%=MIN(31,bsl_count%)  !RS: zerstört nicht mein MS-DOS-Medium
  356. 2935c2972
  357. <   get_id(part_oben%)            ! ID's auslesen
  358. ---
  359. >   get_id(part_oben%)            ! IDs auslesen
  360. 2940c2977
  361. <   yk%=OB_H(p.art%,partsli1&)    ! Y-Koordinate Vater-Objects holen
  362. ---
  363. >   yk%=OB_H(p.art%,partsli1&)    ! y-Koordinate Vater-Objects holen
  364. 2947c2984
  365. <   OB_Y(p.art%,partsli2&)=c%     ! neue Relative Y-Koordinate des Sliders setzen
  366. ---
  367. >   OB_Y(p.art%,partsli2&)=c%     ! neue Relative y-Koordinate des Sliders setzen
  368. 2984c3021
  369. <   get_id(part_oben%)            ! ID's auslesen
  370. ---
  371. >   get_id(part_oben%)            ! IDs auslesen
  372. 2987c3024
  373. <   yvv%=OB_Y(p.art%,1)+OB_Y(p.art%,0)  ! Y-Offset Vater
  374. ---
  375. >   yvv%=OB_Y(p.art%,1)+OB_Y(p.art%,0)  ! y-Offset Vater
  376. 2990c3027
  377. <   y%=OB_Y(p.art%,partsli2&)     ! Y-Koordinate Sohn-Object
  378. ---
  379. >   y%=OB_Y(p.art%,partsli2&)     ! y-Koordinate Sohn-Object
  380. 3004c3041
  381. <   OB_Y(p.art%,partsli2&)=np%    ! neue Relative Y-Koordinate des Sliders setzen
  382. ---
  383. >   OB_Y(p.art%,partsli2&)=np%    ! neue Relative y-Koordinate des Sliders setzen
  384. 3023c3060
  385. <   j&=part_oben%                 ! danach ID's neu setzen
  386. ---
  387. >   j&=part_oben%                 ! danach IDs neu setzen
  388. 3075c3112
  389. <     CLR s%
  390. ---
  391. >     ' CLR s%
  392. 3078c3115,3116
  393. <       IF p_size%(i&)<32768 AND p_id$(i&)="BGM"
  394. ---
  395. >       ' IF p_size%(i&)<32768 AND p_id$(i&)="BGM"
  396. >       IF p_size%(i&)<=dos_max_sectors% AND p_id$(i&)="BGM"
  397. 3081c3119,3120
  398. <       IF p_size%(i&)>32767 AND p_id$(i&)="GEM"
  399. ---
  400. >       ' IF p_size%(i&)>32767 AND p_id$(i&)="GEM"
  401. >       IF p_size%(i&)>dos_max_sectors% AND p_id$(i&)="GEM"
  402. 3093,3094c3132,3133
  403. <   get_id(part_oben%)            ! ID's auslesen
  404. <   get_value(part_oben%)         ! Grössen auslesen
  405. ---
  406. >   get_id(part_oben%)            ! IDs auslesen
  407. >   get_value(part_oben%)         ! Größen auslesen
  408. 3159c3198
  409. < PROCEDURE get_id(j%)          ! Partitions ID's auslesen
  410. ---
  411. > PROCEDURE get_id(j%)          ! Partitions IDs auslesen
  412. 3170c3209
  413. < PROCEDURE get_value(j%)       ! Partitionsgrössen auslesen
  414. ---
  415. > PROCEDURE get_value(j%)       ! Partitionsgrößen auslesen
  416. 3186c3225
  417. <   .| Glob. Var.: hi_spc%,boot.raw%,buf%,hi_spt%,hi_dhc%,block%,h_error%,a$
  418. ---
  419. >   .| Glob. Var.: hi_spc%,boot.raw%,buf%,hi_spt%,hi_dhc%,block%,h_error%
  420. 3191c3230
  421. <   LOCAL bps_2%,i%,j%,lendir%,lenfat%
  422. ---
  423. >   LOCAL a$,bps_2%,i%,j%,len_dir%,len_fat%
  424. 3194c3233,3234
  425. <   BMOVE boot.raw%,buf%,512              ! BOOT-Programm in Puffer
  426. ---
  427. >   a$=STRING$(512,0)                     ! Bootsektor löschen
  428. >   BMOVE V:a$,buf%,512
  429. 3197c3237,3240
  430. <   WHILE j%>32767                        ! Logische Sektorgrösse berechnen
  431. ---
  432. >   IF j%=dos_max_sectors%+1 THEN         !RS: um die Cluster klein zu halten
  433. >     DEC j%
  434. >   ENDIF
  435. >   WHILE j%>dos_max_sectors%             ! Logische Sektorgröße berechnen
  436. 3199a3243,3245
  437. >     IF j%=dos_max_sektors%+1 THEN       !RS: um die Cluster klein zu halten
  438. >       DEC j%
  439. >     ENDIF
  440. 3202c3248,3254
  441. <   BYTE{buf%+11}=bps_2% MOD 256           ! BPS = log. Sektorgrösse
  442. ---
  443. >   CARD{buf%}=&HEB3C                     ! INTEL short jump
  444. >   BYTE{buf%+2}=&H90                     !
  445. >   CHAR{buf%+3}="SED56"                  ! Name
  446. >   i%=XBIOS(17)                          ! Random()
  447. >   CARD{buf%+&H8}=ROL&(i%,8)             ! Seriennummer
  448. >   BYTE{buf%+&HA}=SHR(i%,16)
  449. >   BYTE{buf%+11}=bps_2% MOD 256          ! BPS = log. Sektorgröße
  450. 3204,3205c3256,3257
  451. <   BYTE{buf%+13}=hi_spc%                  ! Sektoren/Cluster
  452. <   BYTE{buf%+14}=1                        ! reserviert
  453. ---
  454. >   BYTE{buf%+13}=hi_spc%                 ! Sektoren/Cluster
  455. >   BYTE{buf%+14}=1                       ! Anzahl reservierter Sektoren
  456. 3207,3211c3259,3263
  457. <   BYTE{buf%+16}=2                        ! Anzahl der FAT's
  458. <   lendir%=MAX(256,bps_2%/32)             ! 256 Einträge von 512-8192 Byte/Sektor
  459. <   BYTE{buf%+17}=lendir% MOD 256
  460. <   BYTE{buf%+18}=lendir% DIV 256          ! Einträge im Rootverzeichnis
  461. <   BYTE{buf%+19}=j% MOD 256               ! Anzahl der Sektoren
  462. ---
  463. >   BYTE{buf%+16}=2                       ! Anzahl der FATs
  464. >   len_dir%=MAX(256,bps_2%/32)           ! 256 Einträge von 512-8192 Byte/Sektor
  465. >   BYTE{buf%+17}=len_dir% MOD 256        ! Einträge im Wurzelverzeichnis
  466. >   BYTE{buf%+18}=len_dir% DIV 256
  467. >   BYTE{buf%+19}=j% MOD 256              ! Anzahl der Sektoren
  468. 3213,3217c3265,3273
  469. <   BYTE{buf%+21}=&HF8                     ! MEDIA
  470. <   lenfat%=(j%/bps_2%+1)*hi_spc%/2        ! Größe der Fat
  471. <   BYTE{buf%+22}=lenfat%                  ! Grösse der FAT
  472. <   BYTE{buf%+23}=0
  473. <   BYTE{buf%+24}=hi_spt%                  ! Sektoren pro Track
  474. ---
  475. >   BYTE{buf%+21}=&HF8                    ! MEDIA
  476. >   '                                       Sektoren je FAT
  477. >   len_fat%=(((((j%-1-len_dir%) DIV hi_spc%)+2)*2)+bps_2%-1) DIV bps_2%
  478. >   IF len_fat%>((((((j%-1-2*(len_fat%-1)-len_dir%) DIV hi_spc%)+2)*2)+bps_2%-1) DIV bps_2%)
  479. >     DEC len_fat%
  480. >   ENDIF
  481. >   BYTE{buf%+22}=len_fat% MOD 256        ! Sektoren je FAT
  482. >   BYTE{buf%+23}=len_fat% DIV 256
  483. >   BYTE{buf%+24}=hi_spt%                 ! Sektoren pro Track
  484. 3219c3275
  485. <   BYTE{buf%+26}=hi_dhc%                  ! Anzahl der Köpfe
  486. ---
  487. >   BYTE{buf%+26}=hi_dhc%                 ! Anzahl der Köpfe
  488. 3221,3222c3277,3300
  489. <   CARD{buf%+28}=0                        ! versteckte Sektoren
  490. <   {buf%+2}=&H53454435                    ! "SED5"
  491. ---
  492. >   CARD{buf%+28}=0                       ! versteckte Sektoren
  493. >   ' Erweiterter Bootsektor wie MS-DOS 4.00
  494. >   ' In spt% und heads% muß die vom PC-Controller simulierte Anzahl stehen!
  495. >   CARD{buf%+&H18}=ROL&(32,8)            ! Sektoren pro Spur (INTEL-Format)
  496. >   CARD{buf%+&H1A}=ROL&(64,8)            ! Köpfe (INTEL-Format)
  497. >   LONG{buf%+&H1C}=SHL(ROL&(p_start%(m%),8),16)+ROL&(SHR(p_start%(m%),16),8) !versteckte Sektoren (INTEL-Format)
  498. >   IF j%>=65536 THEN
  499. >     BYTE{buf%+&H13}=0                   ! Anzahl der Sektoren
  500. >     BYTE{buf%+&H14}=0
  501. >     LONG{buf%+&H20}=SHL(ROL&(j%,8),16)+ROL&(SHR(j%,16),8) !Sektoren (INTEL-Format)
  502. >   ELSE
  503. >     LONG{buf%+&H20}=0
  504. >   ENDIF
  505. >   BYTE{buf%+&H24}=0                     ! physikalische Laufwerksnummer für MS-DOS
  506. >   BYTE{buf%+&H25}=0                     ! für MS-DOS reserviert
  507. >   BYTE{buf%+&H26}=&H29                  ! Kennung für erweiterten BPB
  508. >   i%=GEMDOS(44)                         ! Tgettime()
  509. >   BYTE{buf%+&H27}=i%                    ! Seriennummer
  510. >   BYTE{buf%+&H28}=SHR(i%,8)
  511. >   i%=GEMDOS(42)                         ! Tgetdate()
  512. >   BYTE{buf%+&H29}=i%                    ! noch Seriennummer
  513. >   BYTE{buf%+&H2A}=SHR(i%,8)
  514. >   CHAR{buf%+&H2B}="           FAT16   " ! Medienname und FAT-Typ
  515. >   CARD{buf%+&H1FE}=&H1235-@chk_sum      ! ungültige Prüfsumme für Atari
  516. 3235a3314,3322
  517. >     ' RS: Der Cluster, in dem der Sektor an der Vorzeichengrenze der
  518. >     ' GEMDOS-Sektorpuffer liegt, wird in der FAT als defekt markiert.
  519. >     ' Gehört in hard_set_bad, damit es auch bei »Partition löschen«
  520. >     ' aufgerufen wird. Ich weiß jetzt nur nicht, wie ich an die nötigen
  521. >     ' Variablen rankomme.
  522. >     i%=1+2*len_fat%+len_dir%+(-2*hi_spc%+&H7FFF)
  523. >     IF j%>=i% THEN
  524. >       do_mark_bad(p_start%(m%)+i%*bps_2%/512)
  525. >     ENDIF
  526. 3249c3336
  527. <   IF (OB_STATE(p.art%,pcbhd&) AND 1)>0
  528. ---
  529. >   IF (OB_STATE(p.art%,pcbhd&) AND 1)<>0
  530. 3290c3377
  531. <     IF pfirst%=1                ! ersten ROOT - Sektor schreiben
  532. ---
  533. >     IF pfirst%=1                ! ersten ROOT-Sektor schreiben
  534. 3373c3460
  535. <   LOCAL ab%,i%,ph_sektors%,tm%,x1%,a$
  536. ---
  537. >   LOCAL ab%,anf_fat1%,i%,ph_sektors%,tm%,x1%,a$
  538. 3378c3465,3466
  539. <   x1%=@readmot(22)*BYTE{buf%+16}+@readmot(17)/16
  540. ---
  541. >   anf_fat1%=@readmot(14)                ! Anzahl reservierter Sektoren
  542. >   x1%=anf_fat1%-1+@readmot(22)*BYTE{buf%+16}+@readmot(17)*32/bps_2%
  543. 3385c3473
  544. <   ab%=bps_2%/512
  545. ---
  546. >   ab%=anf_fat1%*ph_sektors%
  547. 3393,3394c3481,3482
  548. <     FOR i%=0 TO (x1%*ph_sektors%)-1
  549. <       BMOVE buf%,tm%+i%*bps%,bps%
  550. ---
  551. >     FOR i%=0 TO x1%-1
  552. >       BMOVE buf%,tm%+i%*bps_2%,bps_2%
  553. 3598c3686
  554. <         EXIT IF h_error%<>0             ! Fehler ?
  555. ---
  556. >         EXIT IF h_error%<>0             ! Fehler?
  557. 3603c3691
  558. <         ab%=BYTE{buf%+1}                ! xx Bytes nach 60xx retten wegen C't
  559. ---
  560. >         ab%=BYTE{buf%+1}                ! xx Bytes nach 60xx retten wegen c't
  561. 3607c3695
  562. <         BMOVE buf%+2,V:b$,LEN(b$)       ! und gerettete Daten (C't)
  563. ---
  564. >         BMOVE buf%+2,V:b$,LEN(b$)       ! und gerettete Daten (c't)
  565. 3614c3702
  566. <         CARD{buf%+&H1BC}=hi_wpc%        !   '    '    Vorkompensation
  567. ---
  568. >         CARD{buf%+&H1BC}=hi_wpc%        !    "    "   Vorkompensation
  569. 3637c3725
  570. <         scsicall(10,0,1,0,buf%,6,2)     ! 1.Rootsektor schreiben
  571. ---
  572. >         scsicall(10,0,1,0,buf%,6,2)     ! 1. Rootsektor schreiben
  573. 3649c3737
  574. <                 BYTE{buf%+&H1C6}=p_flag%(i%)     ! FLAG schreiben !!
  575. ---
  576. >                 BYTE{buf%+&H1C6}=p_flag%(i%)     ! FLAG schreiben!!
  577. 3683c3771
  578. <           ~@alrt(1,"Treiber (CBHD.SYS) |bitte selber kopieren",1,"OK")
  579. ---
  580. >           ~@alrt(1,"Treiber (CBHD.SYS) |bitte selber kopieren",1," OK ")
  581. 3712c3800
  582. <   IF @alrt(2,"Booten von der Platte abstellen ?",1,wa$)=1
  583. ---
  584. >   IF @alrt(2,"Booten von der Platte abstellen?",1,wa$)=1
  585. 3718c3806
  586. <           ~@alrt(1,"Platte ist nicht bootfähig ",1,"Aha")
  587. ---
  588. >           ~@alrt(1,"Platte ist nicht bootfähig!",1," Aha ")
  589. 3742c3830
  590. <   clr_out("Platten suchen...")
  591. ---
  592. >   clr_out("Platten suchen ...")
  593. 3848c3936
  594. <     IF @alrt(1,"HDX-RESTORE|"+STRING$(27,"-")+"  |ACHTUNG: Bootsektoren |werden überschrieben ! ",1,wa$)=1
  595. ---
  596. >     IF @alrt(1,"HDX-RESTORE|"+STRING$(27,"-")+"  |ACHTUNG: Bootsektoren|werden überschrieben! ",1,wa$)=1
  597. 3866c3954
  598. <             IF @alrt(2,"Rootsektor schreiben ?",0,"Ja|Nein")=1
  599. ---
  600. >             IF @alrt(2,"Rootsektor schreiben?",0,"Ja| Nein ")=1
  601. 3880c3968
  602. <                   IF @alrt(2,"Rootsektor restaurieren?",0,"Ja|Nein")=1
  603. ---
  604. >                   IF @alrt(2,"Rootsektor restaurieren?",0,"Ja| Nein ")=1
  605. 3893c3981
  606. <                   erg%=@alrt(2,"Bootsektor "+STR$(i%+1)+" schreiben ?",0,"Ja|Nein|Abbruch")
  607. ---
  608. >                   erg%=@alrt(2,"Bootsektor "+STR$(i%+1)+" schreiben?",0,"Ja|Nein|Abbruch")
  609. 3922c4010
  610. <       IF @alrt(2,"SCHREIB-TEST  Letzte Chance:|Target:"+STR$(target%)+" Geraet:"+STR$(geraet%)+"| "+platte$,0,wa$)=1
  611. ---
  612. >       IF @alrt(2,"SCHREIB-TEST  Letzte Chance:|Target:"+STR$(target%)+" Gerät:"+STR$(geraet%)+"| "+platte$,0,wa$)=1
  613. 3962c4050
  614. <       put_char(b.ox%,boxtxt&,"Testmuster schreiben...")
  615. ---
  616. >       put_char(b.ox%,boxtxt&,"Testmuster schreiben ...")
  617. 4033c4121
  618. <                 ~@alrt(1,"Konnte defekten Block nicht lokalisieren",1,"Dumm")
  619. ---
  620. >                 ~@alrt(1,"Konnte defekten Block nicht lokalisieren.",1," Dumm ")
  621. 4039c4127
  622. <           EXIT IF block%>=hi_size%        ! Fertig ?
  623. ---
  624. >           EXIT IF block%>=hi_size%        ! Fertig?
  625. 4044c4132
  626. <           EXIT IF @was_ist>0        ! Abbruch ?
  627. ---
  628. >           EXIT IF @was_ist>0        ! Abbruch?
  629. 4093c4181
  630. <     out("Block:"+STR$(nr%)+" defekt...")
  631. ---
  632. >     out("Block:"+STR$(nr%)+" defekt ...")
  633. 4158c4246
  634. <   LOCAL len_dir%,len_fat%,anf_fat1%,spc%,lgs%,cluster%,x%
  635. ---
  636. >   LOCAL anf_fat1%,len_dir%,len_fat%,spc%,lgs%,cluster%,x%
  637. 4173a4262
  638. >       anf_fat1%=@readintel(15)                  ! Anzahl reservierter Sektoren
  639. 4176d4264
  640. <       anf_fat1%=@readintel(29)
  641. 4181c4269
  642. <       anf_dat%=1+len_fat%*2+len_dir%
  643. ---
  644. >       anf_dat%=anf_fat1%+len_fat%*fat_anz%+len_dir%
  645. 4183c4271
  646. <       block%=cluster%*2/512+ph_sp_ls%
  647. ---
  648. >       block%=anf_fat1%*ph_sp_ls%+cluster%*2/512
  649. 4190,4191c4278,4279
  650. <         WHILE a%>=hbps%
  651. <           SUB a%,hbps%
  652. ---
  653. >         WHILE a%>=512
  654. >           SUB a%,512
  655. 4195c4283
  656. <         scsicall(10,block%,1,0,buf%,6,2)        ! FAT-Sektor schreiben
  657. ---
  658. >         scsicall(10,block%,1,0,buf%,6,2)         ! FAT-Sektor schreiben
  659. 4198,4199c4286,4287
  660. <         WHILE fat_anz%>0
  661. <           scsicall(10,block%+x%*ph_sp_ls%,1,0,buf%,6,2) ! x.FAT schreiben
  662. ---
  663. >         WHILE fat_anz%>1
  664. >           scsicall(10,block%+x%*ph_sp_ls%,1,0,buf%,6,2) ! x. FAT schreiben
  665. 4215c4303
  666. < FUNCTION check_bsl            ! BSl-Struktur testen
  667. ---
  668. > FUNCTION check_bsl            ! BSL-Struktur testen
  669. 4223c4311
  670. <   IF bsl%>0 AND bsl_count%<5 AND bsl_start%<5
  671. ---
  672. >   IF bsl%>0 AND bsl_count%<32 AND bsl_start%<5
  673. 4232c4320
  674. <         ~@alrt(3,"BSL-Prüfsumme falsch!|Evtl. neu Formatieren.",1,"Aha")
  675. ---
  676. >         ~@alrt(3,"BSL-Prüfsumme falsch!|Evtl. neu Formatieren.",1," Aha ")
  677. 4237d4324
  678. <     ~MFREE(bsl%)
  679. 4240a4328
  680. >   ~MFREE(bsl%)
  681. 4451c4539
  682. <       IF (OB_STATE(t.arget%,i&) AND 1)>0
  683. ---
  684. >       IF (OB_STATE(t.arget%,i&) AND 1)<>0
  685. 4456c4544
  686. <       IF (OB_STATE(t.arget%,i&) AND 1)>0
  687. ---
  688. >       IF (OB_STATE(t.arget%,i&) AND 1)<>0
  689. 4470c4558
  690. <   IF (OB_STATE(t.arget%,tgwahl&) AND 1)>0
  691. ---
  692. >   IF (OB_STATE(t.arget%,tgwahl&) AND 1)<>0
  693. 4533c4621
  694. <     IF INSTR(b$,"SQ555")        ! Wechselmedium ?
  695. ---
  696. >     IF INSTR(b$,"SQ555") OR INSTR(b$,"SQ5110") OR INSTR(b$,"SQ5200") OR INSTR(b$,"SQ3105") OR INSTR(b$,"SQ3270")  ! Wechselmedium?
  697. 4796c4884
  698. <     IF (p_flag%(i%) AND 1)>0
  699. ---
  700. >     IF (p_flag%(i%) AND 1)<>0
  701. 4799c4887
  702. <     IF (p_flag%(i%) AND &H80)>0
  703. ---
  704. >     IF (p_flag%(i%) AND &H80)<>0
  705. 4831,4832c4919,4920
  706. <   ~@alrt(1,"..... geht nicht bei|'VORTEX' ",1,"Warum")
  707. <   ~@alrt(1,"Weiss nicht warum -|Vortex fragen",1,"Darum")
  708. ---
  709. >   ~@alrt(1,"... geht nicht bei|'VORTEX'! ",1,"Warum?")
  710. >   ~@alrt(1,"Weiß nicht warum -|Vortex fragen!",1,"Darum")
  711. 4848c4936
  712. <           qblock%=@eingabe("1.Blocknummer auf Quell"+a$,0)
  713. ---
  714. >           qblock%=@eingabe("1. Blocknummer auf Quell"+a$,0)
  715. 5031c5119
  716. <   ~@alrt(1,"Anzahl der gelesenen Bytes !",1,"Aha")
  717. ---
  718. >   ~@alrt(1,"Anzahl der gelesenen Bytes!",1," Aha ")
  719. 5135c5223
  720. <     IF (OB_STATE(step.rate%,i&) AND 1)>0
  721. ---
  722. >     IF (OB_STATE(step.rate%,i&) AND 1)<>0
  723. 5141c5229
  724. <     IF (OB_STATE(step.rate%,i&) AND 1)>0
  725. ---
  726. >     IF (OB_STATE(step.rate%,i&) AND 1)<>0
  727. 5146c5234
  728. <   IF (OB_STATE(step.rate%,stepresi&) AND 1)>0
  729. ---
  730. >   IF (OB_STATE(step.rate%,stepresi&) AND 1)<>0
  731. 5149c5237
  732. <   IF (OB_STATE(step.rate%,stephd&) AND 1)>0
  733. ---
  734. >   IF (OB_STATE(step.rate%,stephd&) AND 1)<>0
  735. 5166c5254
  736. <     read_adr_feld(100)     ! max. 100 Sektoren ??
  737. ---
  738. >     read_adr_feld(100)     ! max. 100 Sektoren??
  739. 5275c5363
  740. <         BYTE{zg%+7}=sc%                         ! Sektorgrösse
  741. ---
  742. >         BYTE{zg%+7}=sc%                         ! Sektorgröße
  743. 5481c5569
  744. <     BMOVE VARPTR(an$),ak%,trk_len_max%          ! Status löschen ??
  745. ---
  746. >     BMOVE VARPTR(an$),ak%,trk_len_max%          ! Status löschen??
  747. 5485c5573
  748. <       wwa%=@alrt(2,"   Track 41 ?     ",1,"Gap|Anal")
  749. ---
  750. >       wwa%=@alrt(2,"   Track 41?     ",1,"Gap|Anal")
  751. 5511c5599
  752. <     BMOVE VARPTR(an$),ak%,trk_len_max%          ! Status löschen ??
  753. ---
  754. >     BMOVE VARPTR(an$),ak%,trk_len_max%          ! Status löschen??
  755. 5516c5604
  756. <     ~@alrt(1,"Keine Diskette drin oder was ?",1,"Kann sein")
  757. ---
  758. >     ~@alrt(1,"Keine Diskette drin oder was?",1,"Kann sein")
  759. 5548c5636
  760. <       EXIT IF track%>=tpd%            ! Fertig ?
  761. ---
  762. >       EXIT IF track%>=tpd%            ! Fertig?
  763. 5577c5665
  764. <   IF @alrt(2,"   Achtung! Diskette wird   |   gelöscht !! ",2,wa$)=1
  765. ---
  766. >   IF @alrt(2,"   Achtung! Diskette wird   |   gelöscht!! ",2,wa$)=1
  767. 5582c5670
  768. <       wwa%=@alrt(2,"    Was schreiben ??    ",1,"Puffer|Muster|Abbruch")
  769. ---
  770. >       wwa%=@alrt(2,"    Was schreiben?    ",1,"Puffer|Muster|Abbruch")
  771. 5788c5876
  772. <     IF sek%(sec_anz%,5)>a1%     ! war im Sektor ein neuer Header ?
  773. ---
  774. >     IF sek%(sec_anz%,5)>a1%     ! war im Sektor ein neuer Header?
  775. 5852c5940
  776. <   IF sek%(sec_anz%,5)>a1%       ! war im letzten Sektor ein neuer Header ?
  777. ---
  778. >   IF sek%(sec_anz%,5)>a1%       ! war im letzten Sektor ein neuer Header?
  779. 5858c5946
  780. <     sek%(sec_anz%,9)=(sec_end%-sek%(sec_anz%,4))-1    ! Sektorlänge ??
  781. ---
  782. >     sek%(sec_anz%,9)=(sec_end%-sek%(sec_anz%,4))-1    ! Sektorlänge??
  783. 5905c5993
  784. <   IF snr%>22                    ! Sektornummer  ?
  785. ---
  786. >   IF snr%>22                    ! Sektornummer?
  787. 6002c6090
  788. <     ~@alrt(1,"Nur beim ATARI-TT möglich",1,"Aha")
  789. ---
  790. >     ~@alrt(1,"Nur beim ATARI-TT möglich!",1," Aha ")
  791. 6083c6171
  792. <   a%=@eingabe("RAM schreiben ab Adresse :",ram_addr%)
  793. ---
  794. >   a%=@eingabe("RAM schreiben ab Adresse:",ram_addr%)
  795. 6093c6181
  796. <   bc%=@eingabe("Ab Adresse :",ram_addr%)
  797. ---
  798. >   bc%=@eingabe("Ab Adresse:",ram_addr%)
  799. 6095c6183
  800. <     a%=@eingabe("bis Adresse :",0)
  801. ---
  802. >     a%=@eingabe("bis Adresse:",0)
  803. 6098c6186
  804. <         INC a%                  ! darf nicht ungerade Anzahl sein ?
  805. ---
  806. >         INC a%                  ! darf nicht ungerade Anzahl sein?
  807. 6109c6197
  808. <               ~@alrt(3,"Busfehler aufgetreten!",1,"Aha")
  809. ---
  810. >               ~@alrt(3,"Busfehler aufgetreten!",1," Aha ")
  811. 6120c6208
  812. <               ~@alrt(3,"Busfehler aufgetreten!",1,"Aha")
  813. ---
  814. >               ~@alrt(3,"Busfehler aufgetreten!",1," Aha ")
  815. 6145c6233
  816. <       a%=@eingabe("Wieviele Bytes einlesen ?",rfl%)
  817. ---
  818. >       a%=@eingabe("Wieviele Bytes einlesen?",rfl%)
  819. 6164c6252
  820. <     IF @alrt(2,RIGHT$(prg_fi$,40)+"|ab Adresse "+@dec_hex_val$(prg_adr%,8)+"|ist noch im Speicher.|Freigeben?",1,"Ok|Nein")=1
  821. ---
  822. >     IF @alrt(2,RIGHT$(prg_fi$,40)+"|ab Adresse "+@dec_hex_val$(prg_adr%,8)+"|ist noch im Speicher.|Freigeben?",1,"Ok| Nein ")=1
  823. 6178c6266
  824. <         ~@alrt(3,"Kein Speicher frei|oder anderer Fehler ",1,"Abbruch")
  825. ---
  826. >         ~@alrt(3,"Kein Speicher frei|oder anderer Fehler. ",1,"Abbruch")
  827. 6189c6277
  828. <     IF @alrt(2,"Geladenes Programm belegt|noch Speicher.|Freigeben?",1,"Ok|Nein")=1
  829. ---
  830. >     IF @alrt(2,"Geladenes Programm belegt|noch Speicher.|Freigeben?",1,"Ok| Nein ")=1
  831. 6194c6282
  832. <     ~@alrt(3,"Kein Programm geladen",1,"Aha")
  833. ---
  834. >     ~@alrt(3,"Kein Programm geladen.",1," Aha ")
  835. 6318a6407,6413
  836. > FUNCTION rwabs(mode%,buf%,cnt%,lgs%,drive%)
  837. >   IF lgs%<&HFFFF
  838. >     RETURN BIOS(4,mode%,L:buf%,cnt%,lgs%,drive%)
  839. >   ELSE
  840. >     RETURN BIOS(4,mode%,L:buf%,cnt%,-1,drive%,L:lgs%)
  841. >   ENDIF
  842. > ENDFUNC
  843. 6344c6439
  844. <       status%=BIOS(4,0,L:buf%,1,lgs%,drive%)
  845. ---
  846. >       status%=@rwabs(0,buf%,1,lgs%,drive%)
  847. 6402c6497
  848. <       status%=BIOS(4,1,L:buf%,1,lgs%,drive%)
  849. ---
  850. >       status%=@rwabs(1,buf%,1,lgs%,drive%)
  851. 6467c6562
  852. <   .| Glob. Var.: a%,lgs%,el%,a$,spd%
  853. ---
  854. >   .| Glob. Var.: a%,lgs%,el%,spd%
  855. 6471,6479c6566,6574
  856. <   a%=@eingabe("Logische Sektornummer lesen:",lgs%)
  857. <   IF el%>0
  858. <     IF VAL(a$)>=spd% OR VAL(a$)<0
  859. <       ~@alrt(3,"Größte Sectornummer:|"+STR$(spd%-1),1,"Abbruch")
  860. <     ELSE
  861. <       lgs%=MIN(MAX(0,a%),spd%-1,a%)
  862. <       lesen
  863. <       do_list
  864. <     ENDIF
  865. ---
  866. >   DO
  867. >     a%=@eingabe("Logische Sektornummer lesen:",lgs%)
  868. >     EXIT IF el%=0 OR a%>=0 AND a%<spd%
  869. >     ~@alrt(3,"Größte Sektornummer:|"+STR$(spd%-1),1,"Nochmal")
  870. >   LOOP
  871. >   IF el%<>0
  872. >     lgs%=a%
  873. >     lesen
  874. >     do_list
  875. 6486,6493c6581,6588
  876. <   a%=@eingabe("Logische Sektornummer schreiben:",lgs%)
  877. <   IF el%>0
  878. <     IF a%>=spd% OR a%<0
  879. <       ~@alrt(3,"Größte Sektornummer:|"+STR$(spd%-1),1,"Abbruch")
  880. <     ELSE
  881. <       lgs%=a%
  882. <       schreiben
  883. <     ENDIF
  884. ---
  885. >   DO
  886. >     a%=@eingabe("Logische Sektornummer schreiben:",lgs%)
  887. >     EXIT IF el%=0 OR a%>=0 AND a%<spd%
  888. >     ~@alrt(3,"Größte Sektornummer:|"+STR$(spd%-1),1,"Nochmal")
  889. >   LOOP
  890. >   IF el%<>0
  891. >     lgs%=a%
  892. >     schreiben
  893. 6501,6506c6596,6605
  894. <   a%=@eingabe("Cluster lesen:",cluster%)
  895. <   IF el%>0 AND a%>=0
  896. <     lgs%=(a%-2)*spc%+anf_dat%
  897. <     IF lgs%>=spd%
  898. <       ~@alrt(3,"Größte Clusternummer:|"+STR$(cpd%-1),1,"Abbruch")
  899. <       CLR lgs%
  900. ---
  901. >   DO
  902. >     a%=@eingabe("Cluster lesen:",cluster%)
  903. >     EXIT IF el%=0 OR a%=0 OR a%>=2 AND a%<cpd%+2
  904. >     ~@alrt(3,"Größte Clusternummer:|"+STR$(cpd%+1),1,"Nochmal")
  905. >   LOOP
  906. >   IF el%<>0
  907. >     IF a%=0  ! Pseudo-Clusternummer 0 wird erster Sektor des Wurzelverzeichnis
  908. >       lgs%=anf_dir%
  909. >     ELSE
  910. >       lgs%=(a%-2)*spc%+anf_dat%
  911. 6518c6617
  912. <     a%=@eingabe("Track",track%)
  913. ---
  914. >     a%=@eingabe("Track:",track%)
  915. 6632c6731
  916. <       ~@alrt(3,"Sektoren sind unterschiedlich groß",1,"Abbruch")
  917. ---
  918. >       ~@alrt(3,"Sektoren sind unterschiedlich groß.",1,"Abbruch")
  919. 6673c6772
  920. <     status%=BIOS(4,2,L:cmp_ram%,cmp%,start1%,dr1%)
  921. ---
  922. >     status%=@rwabs(2,cmp_ram%,cmp%,start1%,dr1%)
  923. 6679c6778
  924. <       ~@alrt(2,"Diskette gewechselt ?",1,wa$)
  925. ---
  926. >       ~@alrt(2,"Diskette gewechselt?",1,wa$)
  927. 6683c6782
  928. <     status%=BIOS(4,2,L:cmp1%,cmp%,start2%,dr2%)
  929. ---
  930. >     status%=@rwabs(2,cmp1%,cmp%,start2%,dr2%)
  931. 6709c6808
  932. <     ~@alrt(3,"Fehlerüberlauf",1,"Abbruch")
  933. ---
  934. >     ~@alrt(3,"Fehlerüberlauf!",1,"Abbruch")
  935. 7032,7033c7131,7132
  936. <     cx%=((wi%(wind%,1)+1+7) DIV 8)*8    ! X- Ausgabe
  937. <     cy%=ty%(wind%)-z.hoehe%             ! Y-   "
  938. ---
  939. >     cx%=((wi%(wind%,1)+1+7) DIV 8)*8    ! x-Ausgabe
  940. >     cy%=ty%(wind%)-z.hoehe%             ! y-  "
  941. 7048,7049c7147,7148
  942. <       par%(0)=cx%+(xt%+9)*z.breite%     ! X-Pos
  943. <       par%(1)=cy%+yt%*z.hoehe%+1        ! Y-Pos
  944. ---
  945. >       par%(0)=cx%+(xt%+9)*z.breite%     ! x-Pos
  946. >       par%(1)=cy%+yt%*z.hoehe%+1        ! y-Pos
  947. 7138c7237
  948. <     IF wind_top%=whdl&(0) OR wind_top%=whdl&(1) ! geht mich was an ?
  949. ---
  950. >     IF wind_top%=whdl&(0) OR wind_top%=whdl&(1) ! geht mich was an?
  951. 7156c7255
  952. <                     address                   ! im Addressteil ?
  953. ---
  954. >                     address                   ! im Addressteil?
  955. 7160c7259
  956. <                     set_block                 ! Lasso ?
  957. ---
  958. >                     set_block                 ! Lasso?
  959. 7262c7361
  960. < ' wind_dklick: Kommt nur mit NFATS=2 klar
  961. ---
  962. > '
  963. 7268c7367
  964. <   LOCAL a%,aa%,cl%,cz%,fatdiff%
  965. ---
  966. >   LOCAL a%,aa%,cl%,cz%
  967. 7274,7277c7373
  968. <     IF lgs%>0 AND lgs%<len_fat%*2+1     ! = FAT
  969. <       IF lgs%>len_fat%
  970. <         fatdiff%=len_fat%
  971. <       ENDIF
  972. ---
  973. >     IF lgs%>=anf_fat1% AND lgs%<anf_dir%  ! = FAT
  974. 7279c7375
  975. <       IF bflag%=1
  976. ---
  977. >       IF (bflag% AND 1)<>0
  978. 7281c7377
  979. <         ADD cz%,((lgs%-1-fatdiff%)*bps%)/2
  980. ---
  981. >         ADD cz%,(((lgs%-anf_fat1%) MOD len_fat%)*bps%) DIV 2
  982. 7284c7380
  983. <         ADD cz%,((lgs%-1-fatdiff%)*bps%)/1.5
  984. ---
  985. >         ADD cz%,(((lgs%-anf_fat1%) MOD len_fat%)*bps%)/1.5
  986. 7288c7384
  987. <       IF lgs%>len_fat%*2                ! woanders = DIR ?
  988. ---
  989. >       IF lgs%>=anf_dir%                   ! woanders = DIR ?
  990. 7292c7388
  991. <           lgs%=(cl%-2)*spc%+len_fat%*2+len_dir%+1
  992. ---
  993. >           lgs%=anf_dat%+(cl%-2)*spc%
  994. 7294c7390
  995. <           lgs%=anf_fat2%+len_fat%
  996. ---
  997. >           lgs%=anf_dir%
  998. 7799,7800c7895,7896
  999. <   tx%=((wi%(nr%,1)+1+7) DIV 8)*8    ! X- Ausgabe
  1000. <   ty%=wi%(nr%,2)+2*z.hoehe%+0       ! Y-   "
  1001. ---
  1002. >   tx%=((wi%(nr%,1)+1+7) DIV 8)*8    ! x-Ausgabe
  1003. >   ty%=wi%(nr%,2)+2*z.hoehe%+0       ! y-   "
  1004. 8033c8129
  1005. <           '        Opcode,Struct,X-Pos,  Y- ,   Spalte,Zeile,Byte(-1=alles)
  1006. ---
  1007. >           '        Opcode,Struct,x-Pos,  y- ,   Spalte,Zeile,Byte(-1=alles)
  1008. 8089c8185
  1009. <   '         Opcode,Struct,X-Pos,Y-,Spalten,Zeilen,alles)
  1010. ---
  1011. >   '         Opcode,Struct,x-Pos,y-,Spalten,Zeilen,alles)
  1012. 8105c8201
  1013. <   '         Opcode,Struct,X-Pos,Y- ,Spalten,Zeilen,Nummer des Bytes(-1 = alles)
  1014. ---
  1015. >   '         Opcode,Struct,x-Pos,y- ,Spalten,Zeilen,Nummer des Bytes(-1 = alles)
  1016. 8148c8244
  1017. <   '         Op, Strukt,  X-,Y-,Spalten, first Revers, last Revers
  1018. ---
  1019. >   '         Op, Strukt,  x-,y-,Spalten, first Revers, last Revers
  1020. 8560c8656
  1021. <       wwa%=@alrt(2,"Daten sichern...",1,"Puffer|Block|Abbruch")
  1022. ---
  1023. >       wwa%=@alrt(2,"Daten sichern ...",1,"Puffer|Block|Abbruch")
  1024. 8566c8662
  1025. <       wwa%=@alrt(2,"Textfenster sichern...",1,"Puffer|Block|Abbruch")
  1026. ---
  1027. >       wwa%=@alrt(2,"Textfenster sichern ...",1,"Puffer|Block|Abbruch")
  1028. 8580c8676
  1029. <       wwa%=@alrt(2,"Was drucken...",1,"Puffer|Block|Abbruch")
  1030. ---
  1031. >       wwa%=@alrt(2,"Was drucken?",1,"Puffer|Block|Abbruch")
  1032. 8586c8682
  1033. <       wwa%=@alrt(2,"Textfenster drucken...",1,"Puffer|Block|Abbruch")
  1034. ---
  1035. >       wwa%=@alrt(2,"Was aus dem Textfenster drucken?",1,"Puffer|Block|Abbruch")
  1036. 8603c8699
  1037. <   LOCAL a%,b,bbps%,c%,ex_obj&,oldlgs%,a$,b$,bb$
  1038. ---
  1039. >   LOCAL a%,b,bbps%,c%,ex_obj&,oldlgs%,t%,a$,b$,bb$
  1040. 8613c8709
  1041. <     IF bflag%>0
  1042. ---
  1043. >     IF (bflag% AND 1)<>0
  1044. 8619,8621c8715,8722
  1045. <     a%=spd%/spc%*b/bbps%        ! Kontrolle ob FAT zu klein
  1046. <     IF c%<a%
  1047. <       ~@alrt(3,"FAT zu klein !!! |Sollte "+STR$(a%)+" Sektoren|gross sein",1,"Aha")
  1048. ---
  1049. >     t%=@readmot(19)                         ! Anzahl der Sektoren als Wort
  1050. >     IF t%=0
  1051. >       t%=SHL(@readmot(34),16)+@readmot(32)  ! Anzahl der Sektoren als Langwort
  1052. >     ENDIF
  1053. >     a%=(t%-@readmot(14)-BYTE{buf%+16}*c%-@readmot(17)*32/bbps%)/BYTE{buf%+13}+2  ! benötigte FAT-Einträge
  1054. >     a%=(a%*b+bbps%-1)/bbps%  ! benötigte FAT-Sektoren
  1055. >     IF c%<a%                 ! reichen die FAT-Sektoren?
  1056. >       ~@alrt(3,"FAT-Größe im Bootsektor zu klein!!! |Muß "+STR$(a%)+" Sektoren|groß sein!",1," Aha ")
  1057. 8632c8733
  1058. <     put_wert(boot.dat%,bd5&,@readmot(19),7)
  1059. ---
  1060. >     put_wert(boot.dat%,bd5&,t%,7)
  1061. 8652c8753
  1062. <   ' sonstige INFO's
  1063. ---
  1064. >   ' sonstige INFOS
  1065. 8659c8760
  1066. <   lgs%=anf_fat2%+len_fat%               ! Anfang Directory
  1067. ---
  1068. >   lgs%=anf_dir%                         ! Anfang Directory
  1069. 8664c8765
  1070. <     EXIT IF BYTE{buf%+zg%}=0 OR lgs%>=(anf_fat2%+len_fat%+len_dir%)
  1071. ---
  1072. >     EXIT IF BYTE{buf%+zg%}=0 OR lgs%>=anf_dat%
  1073. 8676,8679d8776
  1074. <   IF lgs%>=anf_fat2%+len_fat%+len_dir%
  1075. <     lgs%=anf_fat2%+len_fat%
  1076. <     lesen
  1077. <   ENDIF
  1078. 8689c8786
  1079. <     ~@alrt(1,"Auch eine leeres Laufwerk belegt |FAT+Directory !",1,"Aha")
  1080. ---
  1081. >     ~@alrt(1,"Auch eine leeres Laufwerk belegt |FAT+Directory!",1," Aha ")
  1082. 8714c8811
  1083. <             REPEAT
  1084. ---
  1085. >             REPEAT  ! Pseudoschleife
  1086. 8729,8731c8826,8830
  1087. <       a%=@get_val(boot.dat%,bd9&)       ! Serie
  1088. <       CARD{buf%+8}=(a% AND &HFFFF00) DIV 256
  1089. <       BYTE{buf%+10}=a% AND &HFF
  1090. ---
  1091. >       IF drive%<2
  1092. >         a%=@get_val(boot.dat%,bd9&)     ! Serie
  1093. >         CARD{buf%+8}=(a% AND &HFFFF00) DIV 256
  1094. >         BYTE{buf%+10}=a% AND &HFF
  1095. >       ENDIF
  1096. 8740c8839,8845
  1097. <       put_in_bootsec(19,spd%)
  1098. ---
  1099. >       IF spd%<&H10000                   !RS: Langwortversion von readmot/put_in_bootsec?
  1100. >         put_in_bootsec(19,spd%)         ! Anzahl der Sektoren als Wort
  1101. >       ELSE
  1102. >         put_in_bootsec(19,0)
  1103. >         put_in_bootsec(32,spd% AND &HFFFF) ! Anzahl der Sektoren als Langwort
  1104. >         put_in_bootsec(34,SHR(spd%,16))
  1105. >       ENDIF
  1106. 8747c8852
  1107. <       anf_dat%=@get_val(boot.dat%,bp6&) ! 1.Datensektor
  1108. ---
  1109. >       anf_dat%=@get_val(boot.dat%,bp6&) ! 1. Datensektor
  1110. 8756c8861
  1111. <       a%=VAL(@term$("$"+a$))
  1112. ---
  1113. >       a%=VAL("$"+a$)
  1114. 8820c8925
  1115. <       ~@alrt(3,"Kein BIOS-Parameterblock!|Setze Standardwerte ein |sonst SYSTEM-CRASH !",0," Ok ")
  1116. ---
  1117. >       ~@alrt(3,"Kein BIOS-Parameterblock!|Setze Standardwerte ein, |sonst SYSTEM-CRASH!",0," Ok ")
  1118. 8823c8928
  1119. <       IF bflag%=0
  1120. ---
  1121. >       IF (bflag% AND 1)=0
  1122. 8885c8990
  1123. <   a$="ACHTUNG:|Laufwerk "+CHR$(drive%+65)+" mit|"+STR$(cpd%*spc%)+" Sektoren wird gelöscht!"
  1124. ---
  1125. >   a$="ACHTUNG:|Laufwerk "+CHR$(drive%+65)+" mit|"+STR$(spd%)+" Sektoren wird gelöscht!"
  1126. 8891c8996
  1127. <         start%=spd%-2
  1128. ---
  1129. >         start%=spd%
  1130. 8894c8999
  1131. <         start%=len_fat%*2+len_dir%
  1132. ---
  1133. >         start%=anf_dat%
  1134. 8904c9009
  1135. <         FOR lgs%=start% TO 2 STEP -2
  1136. ---
  1137. >         FOR lgs%=start%-2 TO anf_dir% STEP -2
  1138. 8909c9014
  1139. <           status%=BIOS(4,1,L:buf%,2,lgs%,drive%)
  1140. ---
  1141. >           status%=@rwabs(1,buf%,2,lgs%,drive%)
  1142. 8912c9017
  1143. <         lgs%=1
  1144. ---
  1145. >         lgs%=anf_dir%
  1146. 8914c9019
  1147. <           status%=BIOS(4,1,L:buf%,1,lgs%,drive%)
  1148. ---
  1149. >           status%=@rwabs(1,buf%,1,lgs%,drive%)
  1150. 8916c9021
  1151. <         a$="Sektor: "+RIGHT$(n$+STR$(lgs%),5)
  1152. ---
  1153. >         a$="FAT löschen"
  1154. 8928a9034
  1155. > '
  1156. 8944c9050
  1157. <       FOR lgs%=0 TO len_fat%*2+len_dir%
  1158. ---
  1159. >       FOR lgs%=0 TO anf_dat%-1
  1160. 8946c9052
  1161. <         do_list
  1162. ---
  1163. >         ' do_list  ! dauert zu lange
  1164. 8953c9059
  1165. <       ~@alrt(3,"Bitte nicht auf | dasselbe Laufwerk | DISC-SAVE !",3,"Ok")
  1166. ---
  1167. >       ~@alrt(3,"Bitte nicht auf|dasselbe Laufwerk! | DISK-SAVE!",3," Ok ")
  1168. 8963c9069
  1169. <   fi$=@fsel$("*.DAT","SAVE_"+CHR$(drive%+65)+".DAT","Disc-Load",5)
  1170. ---
  1171. >   fi$=@fsel$("*.DAT","SAVE_"+CHR$(drive%+65)+".DAT","Disk-Load",5)
  1172. 8984a9091
  1173. > '
  1174. 9033,9034c9140,9141
  1175. <       EXIT IF @was_ist>0 OR lgs%>=spd%-1
  1176. <       a1%=MIN(a1%,spd%-lgs%-1)
  1177. ---
  1178. >       EXIT IF @was_ist>0 OR lgs%>=spd%
  1179. >       a1%=MIN(a1%,spd%-lgs%)
  1180. 9052c9159
  1181. <         status%=BIOS(4,2,L:a2%,a1%,lgs%,drive%)
  1182. ---
  1183. >         status%=@rwabs(2,a2%,a1%,lgs%,drive%)
  1184. 9057c9164
  1185. <             status%=BIOS(4,2,L:buf%,1,lgs%,drive%)
  1186. ---
  1187. >             status%=@rwabs(2,buf%,1,lgs%,drive%)
  1188. 9070c9177
  1189. <       IF @alrt(2,STR$(b%)+" defekte Sektoren gefunden | FAT schreiben? ",0,wa$)=1
  1190. ---
  1191. >       IF @alrt(2,STR$(b%)+" defekte Sektoren gefunden! | FAT schreiben?",0,wa$)=1
  1192. 9076c9183
  1193. <     IF a2%>0
  1194. ---
  1195. >     IF a1%>1  ! Wurde Puffer per Malloc() reserviert?
  1196. 9094,9095c9201,9202
  1197. <   cl%=MAX(0,INT((a%-anf_dat%)/spc%)+2)
  1198. <   IF cl%>0
  1199. ---
  1200. >   cl%=INT((a%-anf_dat%)/spc%)+2
  1201. >   IF cl%>=2
  1202. 9235c9342
  1203. <         sch%=@alrt(2,"Cluster ist nicht frei ",1,"Abbruch")
  1204. ---
  1205. >         sch%=@alrt(2,"Cluster ist nicht frei. ",1,"Abbruch")
  1206. 9240c9347
  1207. <       dmt%=@alrt(2,"Repair ohne Rückfragen?",1,"Ohne|Mit")
  1208. ---
  1209. >       dmt%=@alrt(2,"Repair ohne Rückfragen?",1," Ohne |Mit")
  1210. 9245c9352
  1211. <           EXIT IF bac%>cpd%
  1212. ---
  1213. >           EXIT IF bac%>=cpd%+2
  1214. 9282c9389
  1215. <         EXIT IF bac%>cpd% OR rrg%=4
  1216. ---
  1217. >         EXIT IF bac%>=cpd%+2 OR rrg%=4
  1218. 9294,9295c9401,9402
  1219. <         IF (att%(sf%) AND 16)>0   ! Ordner?
  1220. <           dv%=@alrt(2,"Das ist Verzeichnis. |Weitersuchen?",1,"Ja|Nein|Abbruch")
  1221. ---
  1222. >         IF (att%(sf%) AND 16)<>0   ! Ordner?
  1223. >           dv%=@alrt(2,"Das ist ein Verzeichnis. |Weitersuchen?",1,"Ja|Nein|Abbruch")
  1224. 9320c9427
  1225. <           status%=BIOS(4,0,L:VARPTR(bb$),1,sektor%,drive%)
  1226. ---
  1227. >           status%=@rwabs(0,VARPTR(bb$),1,sektor%,drive%)
  1228. 9333c9440
  1229. <               status%=BIOS(4,1,L:VARPTR(bb$),1,sektor%,drive%)
  1230. ---
  1231. >               status%=@rwabs(1,VARPTR(bb$),1,sektor%,drive%)
  1232. 9402c9509
  1233. <     ~@alrt(3,"In welche Datei|soll ich schreiben ?",1,"Abbruch")
  1234. ---
  1235. >     ~@alrt(3,"In welche Datei|soll ich schreiben?",1,"Abbruch")
  1236. 9428c9535
  1237. < PROCEDURE file_compare  ! 2 Dateien(Pfade) vergleichen
  1238. ---
  1239. > PROCEDURE file_compare  ! 2 Dateien (Pfade) vergleichen
  1240. 9463c9570
  1241. <         DEC a%          ! da erst der 2.Name gefunden wird, eine Zeile drüber
  1242. ---
  1243. >         DEC a%          ! da erst der 2. Name gefunden wird, eine Zeile drüber
  1244. 9530c9637
  1245. <       dev("Datei aufteilen - 1.Datei",35)
  1246. ---
  1247. >       dev("Datei aufteilen - 1. Datei",35)
  1248. 9549c9656
  1249. <         dev("Datei aufteilen - 2.Datei",36)
  1250. ---
  1251. >         dev("Datei aufteilen - 2. Datei",36)
  1252. 9571c9678
  1253. <     ~@alrt(3,"Bitte Datei erst öffnen",1,"Mach ich")
  1254. ---
  1255. >     ~@alrt(3,"Bitte Datei erst öffnen.",1,"Mach ich")
  1256. 9655c9762
  1257. <     IF @alrt(2,RIGHT$(fi$,38)+"|löschen ???",0,wa$)=1
  1258. ---
  1259. >     IF @alrt(2,RIGHT$(fi$,38)+"|löschen???",0,wa$)=1
  1260. 9839c9946
  1261. <   out(STR$(total%)+" Dateien sind zu vergleichen...")
  1262. ---
  1263. >   out(STR$(total%)+" Dateien sind zu vergleichen ...")
  1264. 9851c9958
  1265. <     DEC j%      ! 1.Zeichen das nicht gleich ist
  1266. ---
  1267. >     DEC j%      ! 1. Zeichen das nicht gleich ist
  1268. 9898c10005
  1269. <     erg%=@alrt(1,"Sektoren einzeln kopieren?",1,"Ja|Nein")
  1270. ---
  1271. >     erg%=@alrt(1,"Sektoren einzeln kopieren?",1,"Ja| Nein ")
  1272. 9903c10010
  1273. <     IF a2%>0                            ! Speicher da ?
  1274. ---
  1275. >     IF a2%>0                            ! Speicher da?
  1276. 9907c10014
  1277. <       IF fhandle%>0                     ! Ohne Fehler ?
  1278. ---
  1279. >       IF fhandle%>0                     ! Ohne Fehler?
  1280. 9916c10023
  1281. <       IF fhandle%>0                     ! Ohne Fehler ?
  1282. ---
  1283. >       IF fhandle%>0                     ! Ohne Fehler?
  1284. 9947c10054
  1285. <       ~@alrt(1,"Datei kann nicht verändert werden!",1,"Aha")
  1286. ---
  1287. >       ~@alrt(1,"Datei kann nicht verändert werden!",1," Aha ")
  1288. 9998a10106,10121
  1289. >     OB_TYPE(d.atei%,dat4&)=OB_TYPE(d.atei%,dat4&) AND &HFF  !RS: In der Resource ändern!
  1290. >     OB_TYPE(d.atei%,dat5&)=OB_TYPE(d.atei%,dat5&) AND &HFF  !RS: "
  1291. >     IF (d.attr% AND &H18)=8     ! Datenträgername
  1292. >       OB_TYPE(d.atei%,dat1&)=OB_TYPE(d.atei%,dat1&) AND &HFF
  1293. >       OB_TYPE(d.atei%,dat2&)=OB_TYPE(d.atei%,dat2&) AND &HFF
  1294. >       OB_TYPE(d.atei%,dat3&)=OB_TYPE(d.atei%,dat3&) AND &HFF
  1295. >       ' Ist von MS-DOS oder Mac das Archiv-Bit gesetzt, läßt es sich löschen.
  1296. >       IF (d.attr% AND &H20)=0
  1297. >         OB_TYPE(d.atei%,dat6&)=OB_TYPE(d.atei%,dat6&) AND &HFF
  1298. >       ENDIF
  1299. >     ELSE
  1300. >       OB_TYPE(d.atei%,dat1&)=OB_TYPE(d.atei%,dat1&) OR &H1200
  1301. >       OB_TYPE(d.atei%,dat2&)=OB_TYPE(d.atei%,dat2&) OR &H1200
  1302. >       OB_TYPE(d.atei%,dat3&)=OB_TYPE(d.atei%,dat3&) OR &H1200
  1303. >       OB_TYPE(d.atei%,dat6&)=OB_TYPE(d.atei%,dat6&) OR &H1200
  1304. >     ENDIF
  1305. 10003d10125
  1306. <     bra$=@fread$(fhandle%,2)    ! Byte 0+1 lesen
  1307. 10013a10136
  1308. >     bra$=LEFT$(buf$,2)          ! Byte 0+1 lesen
  1309. 10039c10162
  1310. <     ~@fclose(fhandle%)                  ! Datei schliessen
  1311. ---
  1312. >     ~@fclose(fhandle%)                  ! Datei schließen
  1313. 10043a10167
  1314. >     ' tm$=tm$+RIGHT$(n$+STR$((tm% AND 31)*2),2)  RS: BUG: erst Resource ändern!
  1315. 10062c10186
  1316. <       tm%=VAL(LEFT$(b$,2))*2048+VAL(MID$(b$,3,2))*32
  1317. ---
  1318. >       tm%=VAL(LEFT$(b$,2))*2048+VAL(MID$(b$,3,2))*32+VAL(MID$(b$,5,2))/2
  1319. 10071,10089c10195,10215
  1320. <         CLR a%                          ! Header bearbeiten
  1321. <         j&=dath1&
  1322. <         FOR i%=0 TO 7
  1323. <           IF (OB_STATE(d.atei%,j&) AND 2)>0 AND i%<>3
  1324. <             a%=a% OR 2^i%
  1325. <           ENDIF
  1326. <           INC j&
  1327. <         NEXT i%
  1328. <         '
  1329. <         b%=@get_val(d.atei%,dath4&)
  1330. <         b%=SHL(b%,28)
  1331. <         a%=(a% AND &HFFFFFFF) OR b%
  1332. <         ' ----------------
  1333. <         ~@fseek(22,fhandle%,0)          ! Pointer auf Datei-Headerbits
  1334. <         IF a%<>d.header%                ! wenn sich was geändert hat
  1335. <           IF (d.attr% AND 1)>0          ! STATUS: NUR LESEN ?
  1336. <             ~@alrt(3,"Datei hat Status 'NUR LESEN' ",1,"Abbruch")
  1337. <           ELSE
  1338. <             fwrite(fhandle%,MKL$(a%))   ! sonst schreiben
  1339. ---
  1340. >         IF CVI(bra$)=&H601A             ! Programmdatei?
  1341. >           CLR a%                        ! Header bearbeiten
  1342. >           j&=dath1&
  1343. >           FOR i%=0 TO 7
  1344. >             IF (OB_STATE(d.atei%,j&) AND 2)>0 AND i%<>3
  1345. >               a%=a% OR 2^i%
  1346. >             ENDIF
  1347. >             INC j&
  1348. >           NEXT i%
  1349. >           '
  1350. >           b%=@get_val(d.atei%,dath4&)
  1351. >           b%=SHL(b%,28)
  1352. >           a%=(a% AND &HFFFFFFF) OR b%
  1353. >           ' ----------------
  1354. >           ~@fseek(22,fhandle%,0)        ! Pointer auf Datei-Headerbits
  1355. >           IF a%<>d.header%              ! wenn sich was geändert hat
  1356. >             IF (d.attr% AND 1)<>0       ! STATUS: NUR LESEN?
  1357. >               ~@alrt(3,"Datei hat Status 'NUR LESEN'! ",1,"Abbruch")
  1358. >             ELSE
  1359. >               fwrite(fhandle%,MKL$(a%)) ! sonst schreiben
  1360. >             ENDIF
  1361. 10092c10218
  1362. <         ~@fclose(fhandle%)              ! Datei schliessen
  1363. ---
  1364. >         ~@fclose(fhandle%)              ! Datei schließen
  1365. 10098c10224
  1366. <         IF (OB_STATE(d.atei%,j&) AND 2)>0
  1367. ---
  1368. >         IF (OB_STATE(d.atei%,j&) AND 2)<>0
  1369. 10112c10238,10246
  1370. <         IF @frename(fi$,new$)=0 AND fi$=fi_o$
  1371. ---
  1372. >         IF (d.attr% AND &H18)=8         ! Datenträgername
  1373. >           a%=@fcreate(new$,8)
  1374. >           IF a%>0
  1375. >             ~@fclose(a%)
  1376. >           ENDIF
  1377. >         ELSE
  1378. >           a%=@frename(fi$,new$)
  1379. >         ENDIF
  1380. >         IF a%=0 AND fi$=fi_o$
  1381. 10175c10309
  1382. <             EXIT IF aa%=ed%
  1383. ---
  1384. >             EXIT IF aa%>=ed%-7
  1385. 10240c10374
  1386. <       IF (att%(i%) AND 16)>0
  1387. ---
  1388. >       IF (att%(i%) AND 16)<>0
  1389. 10242,10243c10376
  1390. <       ENDIF
  1391. <       IF (att%(i%) AND 8)>0
  1392. ---
  1393. >       ELSE IF (att%(i%) AND 8)<>0
  1394. 10246,10247c10379
  1395. <       ENDIF
  1396. <       IF (att%(i%) AND 7)>0
  1397. ---
  1398. >       ELSE IF (att%(i%) AND 7)<>0
  1399. 10275,10279c10407,10412
  1400. <       IF (att%(a%) AND (16+8))=0
  1401. <         do_datei_info(file$(a%))
  1402. <       ELSE
  1403. <         ~@alrt(1,"Das geht nur mit Dateien",1,"Aha")
  1404. <       ENDIF
  1405. ---
  1406. >       ' RS: Test: Namen lassen sich ändern. Mit BigDOS auch Zeit und Hidden-/System-Attribut.
  1407. >       ' IF (att%(a%) AND (16+8))=0
  1408. >       do_datei_info(file$(a%))
  1409. >       ' ELSE
  1410. >       '  ~@alrt(1,"Das geht nur mit Dateien!",1," Aha ")
  1411. >       ' ENDIF
  1412. 10297,10298c10430,10431
  1413. <   change_pfad(20,drive%)!                       In Pfad Nummer 20 Laufwerk umstellen
  1414. <   fi$=@fsel$("*.*","","Ordner umbenennen",20)!  Fileselektor aufrufen, Zielpfad holen
  1415. ---
  1416. >   change_pfad(20,drive%)                      ! In Pfad Nummer 20 Laufwerk umstellen
  1417. >   fi$=@fsel$("*.*","","Ordner umbenennen",20) ! Fileselektor aufrufen, Zielpfad holen
  1418. 10300,10306c10433,10439
  1419. <     IF @media(drive%)=0 !                       Auf Laufwerk drive% Wechsel auslösen
  1420. <       ~@chk_drv(fi$) !                          Eventuell auf neues Laufwerk umstellen
  1421. <       bb$=STRING$(bps%*spc%,0) !                Clusterpuffer anlegen
  1422. <       find_files !                              Dateibaum durchsuchen
  1423. <       disc_on !                                 In Diskmodus umschalten
  1424. <       fld$=@get_fld_name$(fi$)  !               Ordnernamen holen aus Pfadnamen
  1425. <       a$=LEFT$(fi$,LEN(fi$)-1) !                Backslash am Ende entfernen
  1426. ---
  1427. >     IF @media(drive%)=0                       ! Auf Laufwerk drive% Wechsel auslösen
  1428. >       ~@chk_drv(fi$)                          ! Eventuell auf neues Laufwerk umstellen
  1429. >       bb$=STRING$(bps%*spc%,0)                ! Clusterpuffer anlegen
  1430. >       find_files                              ! Dateibaum durchsuchen
  1431. >       disc_on                                 ! In Diskmodus umschalten
  1432. >       fld$=@get_fld_name$(fi$)                ! Ordnernamen holen aus Pfadnamen
  1433. >       a$=LEFT$(fi$,LEN(fi$)-1)                ! Backslash am Ende entfernen
  1434. 10310,10314c10443,10447
  1435. <         cl%=cluster%(i%) !                      Cluster des Ordners holen
  1436. <         a$=file$(i%) !                          Dateiname holen
  1437. <         a$=RIGHT$(a$,LEN(a$)-RINSTR(a$,"\")) !  Pfadanteil wegfiltern
  1438. <         folder$=@nam_conv$(a$,1) !              Pfadname
  1439. <         lgs%=sec%(i%)                   !       Sektor, in dem Ordner steht
  1440. ---
  1441. >         cl%=cluster%(i%)                      ! Cluster des Ordners holen
  1442. >         a$=file$(i%)                          ! Dateiname holen
  1443. >         a$=RIGHT$(a$,LEN(a$)-RINSTR(a$,"\"))  ! Pfadanteil wegfiltern
  1444. >         folder$=@nam_conv$(a$,1)              ! Pfadname
  1445. >         lgs%=sec%(i%)                         ! Sektor, in dem Ordner steht
  1446. 10317c10450
  1447. <         status%=BIOS(4,0,L:V:bb$,spc%,lgs%,drive%) ! Cluster lesen
  1448. ---
  1449. >         status%=@rwabs(0,V:bb$,spc%,lgs%,drive%) ! Cluster lesen
  1450. 10321,10322c10454,10455
  1451. <         WHILE i%<bps%*spc%-32 AND ab%=0 !       Cluster nach Einträgen absuchen
  1452. <           EXIT IF ASC(MID$(bb$,i%,1))=0 !       letzter Eintrag (beginnt mit 0)
  1453. ---
  1454. >         WHILE i%<bps%*spc%-32 AND ab%=0       ! Cluster nach Einträgen absuchen
  1455. >           EXIT IF ASC(MID$(bb$,i%,1))=0       ! letzter Eintrag (beginnt mit 0)
  1456. 10324c10457
  1457. <           IF MID$(bb$,i%,11)=folder$ !          Ist das unser Ordner?
  1458. ---
  1459. >           IF MID$(bb$,i%,11)=folder$          ! Ist das unser Ordner?
  1460. 10329c10462
  1461. <               status%=BIOS(4,1,L:V:bb$,spc%,lgs%,drive%) ! Cluster schreiben
  1462. ---
  1463. >               status%=@rwabs(1,V:bb$,spc%,lgs%,drive%) ! Cluster schreiben
  1464. 10332c10465
  1465. <             ab%=1 !                             gefunden
  1466. ---
  1467. >             ab%=1                             ! gefunden
  1468. 10335c10468
  1469. <           ADD i%,32 !                           nächster Eintrag
  1470. ---
  1471. >           ADD i%,32                           ! nächster Eintrag
  1472. 10380c10513
  1473. <         ~@alrt(3,"Ordner nicht gefunden!",1,"Dumm")
  1474. ---
  1475. >         ~@alrt(3,"Ordner nicht gefunden!",1," Dumm ")
  1476. 10436c10569
  1477. <           IF ASC(a$)<>46                                ! "." oder ".." ?
  1478. ---
  1479. >           IF ASC(a$)<>46                                ! "." oder ".."?
  1480. 10439c10572
  1481. <           IF (BYTE{buf%+zg%+11} AND 16)                 ! Ordner ?
  1482. ---
  1483. >           IF (BYTE{buf%+zg%+11} AND 16)                 ! Ordner?
  1484. 10665c10798
  1485. <   IF fehler%<5
  1486. ---
  1487. >   IF fehler%<0
  1488. 10681c10814
  1489. <     err_inf1(fehler%," Fopen: "+df$,gm$)
  1490. ---
  1491. >     err_inf1(fehler%,"Fopen: "+df$,gm$)
  1492. 10723c10856
  1493. <   IF (a% AND 1)>0       ! Schreibgeschützt?
  1494. ---
  1495. >   IF (a% AND 1)<>0       ! Schreibgeschützt?
  1496. 10750c10883
  1497. <     err_inf1(fehler%,"Fread:Lesen",gm$)
  1498. ---
  1499. >     err_inf1(fehler%,"Fread: Lesen",gm$)
  1500. 10806c10939
  1501. <   IF NOT GEMDOS(78,L:VARPTR(all$),&X110111)     ! Fsfirst
  1502. ---
  1503. >   IF GEMDOS(78,L:VARPTR(all$),&X110111)=0     ! Fsfirst
  1504. 10811c10944
  1505. <       IF (ASC(MID$(dta$,22,1)) AND 16)>0  ! Ordner?
  1506. ---
  1507. >       IF (ASC(MID$(dta$,22,1)) AND 16)<>0  ! Ordner?
  1508. 11046c11179
  1509. <     IF (ev_ks& AND 8)>0         ! = ALT
  1510. ---
  1511. >     IF (ev_ks& AND 8)<>0        ! = ALT
  1512. 11049c11182
  1513. <       IF (ev_ks& AND 4)>0       ! = CTRL
  1514. ---
  1515. >       IF (ev_ks& AND 4)<>0      ! = CTRL
  1516. 11292c11425
  1517. <       WHILE b%<=c%       ! schon am Ende ?
  1518. ---
  1519. >       WHILE b%<=c%       ! schon am Ende?
  1520. 11379c11512
  1521. < PROCEDURE ctrl_h              ! Block markierung löschen
  1522. ---
  1523. > PROCEDURE ctrl_h              ! Blockmarkierung löschen
  1524. 12350c12483
  1525. <     cluster%=MAX(0,INT((lgs%-anf_dat%)/spc%)+2)
  1526. ---
  1527. >     cluster%=INT((lgs%-anf_dat%)/spc%)+2
  1528. 12352c12485,12500
  1529. <     MID$(info_line$,12)="Clu:"+@dec_hex_val$(cluster%,5)
  1530. ---
  1531. >     IF cluster%<2                 ! Systembereich
  1532. >       CLR cluster%
  1533. >       IF lgs%>=anf_dir%
  1534. >         MID$(info_line$,12)="Clu:_ROOT"
  1535. >       ELSE IF lgs%>=anf_fat2% AND (bflag% AND 2)<>0
  1536. >         MID$(info_line$,12)="Clu:_FAT "
  1537. >       ELSE IF lgs%>=anf_fat2%
  1538. >         MID$(info_line$,12)="Clu:_FAT2"
  1539. >       ELSE IF lgs%>=anf_fat1%
  1540. >         MID$(info_line$,12)="Clu:_FAT1"
  1541. >       ELSE
  1542. >         MID$(info_line$,12)="Clu:_BOOT"
  1543. >       ENDIF
  1544. >     ELSE                          ! Datenbereich
  1545. >       MID$(info_line$,12)="Clu:"+@dec_hex_val$(cluster%,5)
  1546. >     ENDIF
  1547. 12418c12566
  1548. <     wwa%=@alrt(2,"Programm ausführen ?|"+a$,1,"Ok|Abbruch")
  1549. ---
  1550. >     wwa%=@alrt(2,"Programm ausführen?|"+a$,1,"Ok|Abbruch")
  1551. 12457d12604
  1552. <       v_enter_cur(scr_handle%)
  1553. 12460,12461c12607,12610
  1554. <       IF b$<>"TTP" AND b$<>"TOS"
  1555. <         v_exit_cur(scr_handle%)
  1556. ---
  1557. >       IF b$="TTP" OR b$="TOS"
  1558. >         v_enter_cur(scr_handle%)
  1559. >       ELSE
  1560. >         ' v_exit_cur(scr_handle%)
  1561. 12472,12473c12621,12623
  1562. <       IF GEMDOS(75,0,L:V:fi$,L:V:ttp$,L:V:env$)<>0
  1563. <         ~@alrt(3,"PEXEC-Fehler: "+STR$(a%)+"  ",1,"&%$§")
  1564. ---
  1565. >       a%=GEMDOS(75,0,L:V:fi$,L:V:ttp$,L:V:env$)<>0
  1566. >       IF a%<>0
  1567. >         ~@alrt(3,"PEXEC-Fehler "+STR$(a%)+"|oder|Programm meldet "+STR$(a% AND &HFFFF),1," &%$§ ")
  1568. 12486c12636
  1569. <         IF rom_version%>=&H104
  1570. ---
  1571. >         IF CARD{LONG{GB+4}}>=&H140
  1572. 12555c12705
  1573. <   wwa%=@alrt(4,ver$+" |Der etwas andere Diskmonitor |aus dem SCHEIBENKLEISTER",4,"Kleister|SED|Hilfe|Danke")
  1574. ---
  1575. >   wwa%=@alrt(4,ver$+"|Modifiziert 1995-04-04 von Rainer Seitel @ KA|Der etwas andere Diskmonitor |aus dem SCHEIBENKLEISTER",4,"Kleister|SED|Hilfe|Danke")
  1576. 12570c12720
  1577. <   IF @alrt(2,"Ist für heute wirklich Schluß ?",1,"Schluss|Nie")=1
  1578. ---
  1579. >   IF @alrt(2,"Ist für heute wirklich Schluß?",1," Schluß |Nie")=1
  1580. 12698c12848
  1581. <         a%=(ASC(search$)+1) AND &HFF    ! Füllmuster nach Suchstring ändern !
  1582. ---
  1583. >         a%=(ASC(search$)+1) AND &HFF    ! Füllmuster nach Suchstring ändern!
  1584. 12740c12890
  1585. <         IF b%>0                 ! was gefunden ?
  1586. ---
  1587. >         IF b%>0                 ! was gefunden?
  1588. 12761c12911
  1589. <         search_lesen(sbg%-1)                   ! ab 2.Block im String lesen
  1590. ---
  1591. >         search_lesen(sbg%-1)                   ! ab 2. Block im String lesen
  1592. 12769c12919
  1593. <         ~@alrt(3,"Keine (weitere) |Fundstelle!",1,"Ok")
  1594. ---
  1595. >         ~@alrt(3,"Keine (weitere) |Fundstelle!",1," Ok ")
  1596. 12792,12793c12942,12943
  1597. <     IF lgs%+a2%>spd%-1
  1598. <       a2%=spd%-lgs%-1
  1599. ---
  1600. >     IF lgs%+a2%>spd%
  1601. >       a2%=spd%-lgs%
  1602. 12796c12946
  1603. <     status%=BIOS(4,2,L:a1%,a2%,lgs%,drive%)
  1604. ---
  1605. >     status%=@rwabs(2,a1%,a2%,lgs%,drive%)
  1606. 12843c12993
  1607. <       DEC lll%                  ! ja, mehrere Blocks gelesen...
  1608. ---
  1609. >       DEC lll%                  ! ja, mehrere Blocks gelesen ...
  1610. 12918c13068
  1611. <         ~@alrt(3,"Hex-Data falsch ",1,"Ok")
  1612. ---
  1613. >         ~@alrt(3,"Hex-Data falsch! ",1," Ok ")
  1614. 12935c13085
  1615. <           ~@alrt(3,"Dezimale Werte |zwischen 0 und 255!",1,"Ok")
  1616. ---
  1617. >           ~@alrt(3,"Dezimale Werte |zwischen 0 und 255!",1," Ok ")
  1618. 12950c13100
  1619. <             ~@alrt(3,"Binäre Werte max. 8 Bit! ",1,"Ok")
  1620. ---
  1621. >             ~@alrt(3,"Binäre Werte max. 8 Bit! ",1," Ok ")
  1622. 13100c13250
  1623. <       ~@alrt(1,"CRC-Prüfsumme des  |markierten Blocks :|$"+a$,1,"OK")
  1624. ---
  1625. >       ~@alrt(1,"CRC-Prüfsumme des|markierten Blocks:|$"+a$,1," OK ")
  1626. 13102c13252
  1627. <       ~@alrt(3,"Kein Block markiert !",1,"Hmmmm")
  1628. ---
  1629. >       ~@alrt(3,"Kein Block markiert!",1,"Hmmmm")
  1630. 13489c13639
  1631. <     clr_state(h.elp%,ex_obj&,1)         ! selected ?
  1632. ---
  1633. >     clr_state(h.elp%,ex_obj&,1)         ! selected?
  1634. 13585c13735
  1635. <   pfad$(46)=pfad$(29)           ! fürs speichern des Textes (Hi Claus...)
  1636. ---
  1637. >   pfad$(46)=pfad$(29)           ! fürs Speichern des Textes (Hi Claus ...)
  1638. 13595c13745
  1639. <     ~@alrt(3,"Kein Fehler, keine Nachrichten",1,"Gut so")
  1640. ---
  1641. >     ~@alrt(3,"Kein Fehler, keine Nachrichten.",1,"Gut so")
  1642. 13782c13932
  1643. <       WHILE b%<c%       ! schon am Ende ?
  1644. ---
  1645. >       WHILE b%<c%       ! schon am Ende?
  1646. 13872c14022
  1647. <     erg2%=@alrt(3,"Fehlerseite ist voll",1,"Danke|Löschen")
  1648. ---
  1649. >     erg2%=@alrt(3,"Fehlerseite ist voll.",1,"Danke|Löschen")
  1650. 13889c14039
  1651. <   cluster%=MIN(cluster%,cpd%)
  1652. ---
  1653. >   cluster%=MIN(cluster%,cpd%+1)
  1654. 13905,13906c14055,14056
  1655. <         a$=@term$(CHAR{{OB_SPEC(f.at%,fat_nr&)}})
  1656. <         cluster%=MIN(cpd%-1,VAL(a$))
  1657. ---
  1658. >         a$=CHAR{{OB_SPEC(f.at%,fat_nr&)}}
  1659. >         cluster%=MIN(cpd%+1,VAL(a$))
  1660. 13912,13913c14062,14063
  1661. <         a$=@term$(CHAR{{OB_SPEC(f.at%,fat_nr&)}})
  1662. <         cluster%=MIN(cpd%-1,VAL(a$))
  1663. ---
  1664. >         a$=CHAR{{OB_SPEC(f.at%,fat_nr&)}}
  1665. >         cluster%=MIN(cpd%+1,VAL(a$))
  1666. 13918c14068
  1667. <         a$=STR$(cpd%-1)
  1668. ---
  1669. >         cluster%=cpd%+1
  1670. 13920c14070
  1671. <         a$=@term$(CHAR{{OB_SPEC(f.at%,fat_nr&)}})
  1672. ---
  1673. >         cluster%=MIN(VAL(CHAR{{OB_SPEC(f.at%,fat_nr&)}})+1,cpd%+1)
  1674. 13922d14071
  1675. <       cluster%=MIN(VAL(a$)+1,cpd%-1)
  1676. 13926c14075
  1677. <         a$="0"
  1678. ---
  1679. >         cluster%=2
  1680. 13928c14077
  1681. <         a$=@term$(CHAR{{OB_SPEC(f.at%,fat_nr&)}})
  1682. ---
  1683. >         cluster%=MAX(2,VAL(CHAR{{OB_SPEC(f.at%,fat_nr&)}})-1)
  1684. 13930d14078
  1685. <       cluster%=MAX(0,VAL(a$)-1)
  1686. 13933c14081
  1687. <       a$=@term$(CHAR{{OB_SPEC(f.at%,fwrt&)}})
  1688. ---
  1689. >       a$=CHAR{{OB_SPEC(f.at%,fwrt&)}}
  1690. 13935c14083
  1691. <       IF @alrt(2,"FAT zurückschreiben",0,wa$)=1
  1692. ---
  1693. >       IF @alrt(2,"FAT zurückschreiben?",0,wa$)=1
  1694. 13942,13943c14090,14091
  1695. <       a$=@term$(CHAR{{OB_SPEC(f.at%,fat_nr&)}})
  1696. <       cluster%=MIN(cpd%-1,VAL(a$))
  1697. ---
  1698. >       a$=CHAR{{OB_SPEC(f.at%,fat_nr&)}}
  1699. >       cluster%=MIN(cpd%+1,VAL(a$))
  1700. 13947,13948c14095,14096
  1701. <       a$=@term$(CHAR{{OB_SPEC(f.at%,fat_nr&)}})
  1702. <       cluster%=MIN(cpd%-1,VAL(a$))
  1703. ---
  1704. >       a$=CHAR{{OB_SPEC(f.at%,fat_nr&)}}
  1705. >       cluster%=MIN(cpd%+1,VAL(a$))
  1706. 13952,13953c14100,14101
  1707. <       a$=@term$(CHAR{{OB_SPEC(f.at%,fat_nr&)}})
  1708. <       cluster%=MIN(cpd%-1,VAL(a$))
  1709. ---
  1710. >       a$=CHAR{{OB_SPEC(f.at%,fat_nr&)}}
  1711. >       cluster%=MIN(cpd%+1,VAL(a$))
  1712. 13964,13965c14112,14113
  1713. <   a$=@term$(CHAR{{OB_SPEC(f.at%,fat_nr&)}})
  1714. <   set_cursor_in_fat(MAX(0,VAL(a$)-1))
  1715. ---
  1716. >   a$=CHAR{{OB_SPEC(f.at%,fat_nr&)}}
  1717. >   set_cursor_in_fat(MAX(0,VAL(a$)))
  1718. 13975c14123
  1719. <   LOCAL a$,fac$,cl%,j%,aa%,anz%
  1720. ---
  1721. >   LOCAL a$,fac$,cl%,j%,anz%
  1722. 13990c14138
  1723. <       ~@alrt(1,"Wurzelverzeichnis ab Sektor "+STR$(lgs%)+" |für "+STR$(len_dir%)+" Sektoren ",1,"Aha")
  1724. ---
  1725. >       ~@alrt(1,"Wurzelverzeichnis ab Sektor "+STR$(lgs%)+" |für "+STR$(len_dir%)+" Sektoren.",1," Aha ")
  1726. 14008c14156,14157
  1727. <         DO
  1728. ---
  1729. >         ' DO
  1730. >         REPEAT
  1731. 14012d14160
  1732. <             aa%=@read_in_fat(cl%)
  1733. 14014,14015c14162,14163
  1734. <             cl%=aa%
  1735. <             EXIT IF aa%>=ed%-8 OR aa%=0 OR (aa%>=cpd% AND aa%<ed%-8)
  1736. ---
  1737. >             cl%=@read_in_fat(cl%)
  1738. >             EXIT IF cl%<2 OR cl%>=cpd%+2
  1739. 14018,14019c14166,14169
  1740. <           EXIT IF aa%>=ed%-8 OR aa%=0
  1741. <         LOOP
  1742. ---
  1743. >           IF cl%<2 OR (cl%>=cpd%+2 AND cl%<ed%-7)
  1744. >             out("Ungültiger Cluster-Eintrag "+@dec_hex_val$(cl%,7))
  1745. >           ENDIF
  1746. >         UNTIL cl%<2 OR cl%>=cpd%+2
  1747. 14028c14178
  1748. <   .|     anf_dat%,hdl%
  1749. ---
  1750. >   .|     anf_dat%,hdl%,buf%,bps%
  1751. 14031c14181
  1752. <   .|     fat_get_leiche,fclose,write_fat,bios_block
  1753. ---
  1754. >   .|     fat_get_leiche,fclose,write_fat,bios_block,lesen,fwrite2
  1755. 14044c14194
  1756. <         ~@alrt(3,"Sammeln unbedingt auf einem|anderem Laufwerk!",1,"Ok")
  1757. ---
  1758. >         ~@alrt(3,"Sammeln unbedingt auf einem|anderen Laufwerk!",1," Ok ")
  1759. 14050c14200
  1760. <           FOR fat_tst%=2 TO cpd%
  1761. ---
  1762. >           FOR fat_tst%=2 TO cpd%+1
  1763. 14061,14063c14211,14214
  1764. <                   fat_get_leiche
  1765. <                   INC lgs%
  1766. <                   fat_get_leiche
  1767. ---
  1768. >                   FOR lgs%=lgs% TO lgs%+spc%-1
  1769. >                     lesen
  1770. >                     fwrite2(hdl%,buf%,bps%)
  1771. >                   NEXT lgs%
  1772. 14068,14070d14218
  1773. <           IF fterg%=1
  1774. <             ~@fclose(hdl%)
  1775. <           ENDIF
  1776. 14072c14220
  1777. <             IF @alrt(2,STR$(fu%)+" Leichencluster gefunden.|Sollen diese Cluster |freigegeben werden?",0,"Ja|Nein")=1
  1778. ---
  1779. >             IF @alrt(2,STR$(fu%)+" Leichencluster gefunden.|Sollen diese Cluster|freigegeben werden?",0,"Ja| Nein ")=1
  1780. 14080a14229,14231
  1781. >       IF fterg%=1
  1782. >         ~@fclose(hdl%)
  1783. >       ENDIF
  1784. 14084,14090d14234
  1785. < PROCEDURE fat_get_leiche
  1786. <   .| Glob. Var.: hdl%,buf%,bps%
  1787. <   .| Ruft auf  : lesen,fwrite2
  1788. <   .| Aufruf in : fat_test-2,
  1789. <   lesen
  1790. <   fwrite2(hdl%,buf%,bps%)
  1791. < RETURN
  1792. 14113d14256
  1793. <         akt_cl%=1
  1794. 14115c14258,14259
  1795. <         IF cl%<cpd%
  1796. ---
  1797. >         IF cl%>=2 AND cl%<cpd%+2
  1798. >           akt_cl%=1
  1799. 14124d14267
  1800. <               INC akt_cl%
  1801. 14126,14130c14269
  1802. <               IF aa%>=cpd% AND aa%<ed%
  1803. <                 err_inf3(cl%,"Clusternummer zu gross","Clusternummer=")
  1804. <                 aa%=cc%
  1805. <               ENDIF
  1806. <               EXIT IF fer%>=max_err% OR aa%>=cc%
  1807. ---
  1808. >               EXIT IF aa%<2 OR aa%>=cpd%+2
  1809. 14131a14271
  1810. >               INC akt_cl%
  1811. 14142c14282,14294
  1812. <           IF (aa%=0 AND laenge%(fat_tst%)<>0)
  1813. ---
  1814. >           IF aa%=0 AND laenge%(fat_tst%)<>0
  1815. >             f$=file$(fat_tst%)
  1816. >             err_inf3(cl%,"Freier Cluster in Datei "+f$,"Clusternummer=")
  1817. >           ENDIF
  1818. >           IF aa%=1
  1819. >             f$=file$(fat_tst%)
  1820. >             err_inf3(cl%,"Clustereintrag = 1 in Datei "+f$,"Clusternummer=")
  1821. >           ENDIF
  1822. >           IF aa%>=cpd%+2 AND aa%<cc%
  1823. >             f$=file$(fat_tst%)
  1824. >             err_inf3(cl%,"Clustereintrag zu groß in Datei "+f$,"Clusternummer=")
  1825. >           ENDIF
  1826. >           IF aa%=cc%
  1827. 14144c14296
  1828. <             err_inf3(cl%,"Clustereintrag=0 in Datei "+f$,"Clusternummer=")
  1829. ---
  1830. >             err_inf3(cl%,"Defekter Cluster in Datei "+f$,"Clusternummer=")
  1831. 14148a14301,14304
  1832. >             err_inf3(laenge%(fat_tst%),"FAT-Belegung < Dateilänge in Datei: "+f$,"DIR-Länge=")
  1833. >           ENDIF
  1834. >           IF ((att%(fat_tst%) AND &H18)=0) AND (akt_cl%-1)*bps%*spc%>=laenge%(fat_tst%)
  1835. >             f$=file$(fat_tst%)
  1836. 14151c14307,14319
  1837. <           '
  1838. ---
  1839. >         ELSE
  1840. >           IF cl%=0 AND laenge%(fat_tst%)<>0
  1841. >             f$=file$(fat_tst%)
  1842. >             err_inf3(cl%,"Kein Anfangs-Cluster obwohl Länge > 0 in Datei "+f$,"")
  1843. >           ENDIF
  1844. >           IF cl%=1
  1845. >             f$=file$(fat_tst%)
  1846. >             err_inf3(cl%,"Anfangs-Clusternummer = 1 in Datei "+f$,"")
  1847. >           ENDIF
  1848. >           IF cl%>=cpd%+2
  1849. >             f$=file$(fat_tst%)
  1850. >             err_inf3(cl%,"Anfangs-Clusternummer zu groß in Datei "+f$,"")
  1851. >           ENDIF
  1852. 14181c14349
  1853. < PROCEDURE fat_xor               ! Fat's vergleichen
  1854. ---
  1855. > PROCEDURE fat_xor               ! FATs vergleichen
  1856. 14191c14359
  1857. <   x%=anf_fat1%+len_fat% ! Start  der 2.FAT
  1858. ---
  1859. >   x%=anf_fat1%+len_fat% ! Start  der 2. FAT
  1860. 14209c14377
  1861. <     wwa%=@alrt(3,"FAT's sind verschieden!",3,"Abbruch")
  1862. ---
  1863. >     wwa%=@alrt(3,"FATs sind verschieden!",3,"Abbruch")
  1864. 14233,14234c14401,14402
  1865. <     FOR j%=9 TO 13
  1866. <       ab%=2^j%*spc%             ! Bytes/Cluster
  1867. ---
  1868. >     FOR j%=9 TO 15
  1869. >       ab%=2^j%                  ! Bytes/Cluster
  1870. 14256c14424
  1871. < PROCEDURE fat_leiche_12         ! Leichencluster prüfen in 12 Bit FAT
  1872. ---
  1873. > PROCEDURE fat_leiche_12         ! Leichencluster prüfen in 12-Bit-FAT
  1874. 14261c14429
  1875. <   cc%=ed%-15    ! defekt= FFF0-FFF7
  1876. ---
  1877. >   cc%=ed%-15    ! defekt= FF0-FF7  !RS:BUG: nach ISO und MS-DOS nur $FF7!!!
  1878. 14264c14432
  1879. <   FOR fat_tst%=2 TO cpd%
  1880. ---
  1881. >   FOR fat_tst%=2 TO cpd%+1
  1882. 14288c14456
  1883. <   cc%=ed%-15    ! defekt= FFF0-FFF7
  1884. ---
  1885. >   cc%=ed%-15    ! defekt= FFF0-FFF7  !RS:BUG: nach ISO und MS-DOS nur $FFF7!!!
  1886. 14290c14458
  1887. <   FOR fat_tst%=2 TO cpd%
  1888. ---
  1889. >   FOR fat_tst%=2 TO cpd%+1
  1890. 14315c14483
  1891. <     ON bflag%+1 GOSUB fat_leiche_12,fat_leiche_16
  1892. ---
  1893. >     ON (bflag% AND 1)+1 GOSUB fat_leiche_12,fat_leiche_16
  1894. 14328c14496
  1895. <   do_clr_out("")
  1896. ---
  1897. >   do_clr_out("? = verklebt, V = Verwaltung, X = Leiche, D = defekt, . = frei")
  1898. 14330c14498
  1899. <   FOR j%=0 TO cpd% STEP 64
  1900. ---
  1901. >   FOR j%=0 TO cpd%+1 STEP 64
  1902. 14333c14501
  1903. <     FOR i%=j% TO j%+MIN(64,cpd%-j%)
  1904. ---
  1905. >     FOR i%=j% TO j%+MIN(64,cpd%+1-j%)
  1906. 14335c14503
  1907. <         MID$(a$,fgs%)="B"
  1908. ---
  1909. >         MID$(a$,fgs%)="b"
  1910. 14344c14512
  1911. <   out("Drive : "+CHR$(drive%+65)+"   "+STR$(cpd%)+" Cluster")
  1912. ---
  1913. >   out("Drive: "+CHR$(drive%+65)+"   "+STR$(cpd%)+" Cluster")
  1914. 14347c14515
  1915. <   .| Glob. Var.: cok%,txt_zeile%,top%,txt_spalte%,ev_clicks&,lgs%,spc%
  1916. ---
  1917. >   .| Glob. Var.: txt_zeile%,top%,txt_spalte%,ev_clicks&,lgs%,spc%
  1918. 14353c14521
  1919. <   LOCAL aa%,a%,b%,cl%,i%,a$,f$,x1$,x2$,x3$
  1920. ---
  1921. >   LOCAL a%,b%,cl%,klickcl%,anzcl%,i%,a$,f$,x1$,x2$,x3$
  1922. 14355d14522
  1923. <   cok%=32768
  1924. 14369,14380c14536,14564
  1925. <   IF cl%<cok%
  1926. <     IF cl%>cpd%
  1927. <       out$(0)=SPACE$(wc%)
  1928. <       info_line
  1929. <     ELSE
  1930. <       IF fat%(cl%)>0
  1931. <         f$=file$(fat%(cl%))
  1932. <         IF (att%(fat%(cl%)) AND 16)>0
  1933. <           f$=f$+"\"
  1934. <         ENDIF
  1935. <         out$(0)=@dec_hex_val$(cl%,6)+" "+f$+SPACE$(MAX(0,wc%-LEN(f$)))
  1936. <         cl%=cluster%(fat%(cl%))
  1937. ---
  1938. >   IF cl%>=cpd%+2
  1939. >     out$(0)=SPACE$(wc%)
  1940. >     info_line
  1941. >   ELSE
  1942. >     SELECT fat%(cl%)
  1943. >     CASE 1 TO
  1944. >       f$=file$(fat%(cl%))
  1945. >       IF (att%(fat%(cl%)) AND 16)<>0
  1946. >         f$=f$+"\"
  1947. >       ENDIF
  1948. >       klickcl%=cl%
  1949. >       anzcl%=1
  1950. >       cl%=cluster%(fat%(cl%))     ! Start-Cluster
  1951. >       a%=cl%/64
  1952. >       b%=cl%-a%*64+8
  1953. >       a$=MID$(out$(a%+1),b%,1)
  1954. >       '
  1955. >       IF ASC(a$)<10
  1956. >         x1$="b"
  1957. >         x2$="b"
  1958. >         x3$="b"
  1959. >       ELSE
  1960. >         x1$="⇧"
  1961. >         x2$="⇩"
  1962. >         x3$="⇨"
  1963. >       ENDIF
  1964. >       MID$(out$(a%+1),b%,1)=x1$
  1965. >       cl%=@read_in_fat(cl%)
  1966. >       WHILE cl%<cpd%+2
  1967. 14383,14422c14567,14582
  1968. <         a$=MID$(out$(a%+1),b%,1)
  1969. <         '
  1970. <         IF ASC(a$)<10
  1971. <           x1$="B"
  1972. <           x2$="B"
  1973. <           x3$="B"
  1974. <         ELSE
  1975. <           x1$="⇧"
  1976. <           x2$="⇩"
  1977. <           x3$="⇨"
  1978. <         ENDIF
  1979. <         MID$(out$(a%+1),b%,1)=x1$
  1980. <         cl%=@read_in_fat(cl%)       ! Start Cluster
  1981. <         IF cl%<ed%-8
  1982. <           REPEAT
  1983. <             aa%=@read_in_fat(cl%)
  1984. <             IF cl%<ed%
  1985. <               a%=cl%/64
  1986. <               b%=cl%-a%*64+8
  1987. <               MID$(out$(a%+1),b%,1)=x3$
  1988. <             ENDIF
  1989. <             cl%=aa%
  1990. <           UNTIL aa%>=ed%-8
  1991. <         ENDIF
  1992. <         MID$(out$(a%+1),b%,1)=x2$
  1993. <       ELSE
  1994. <         SELECT fat%(cl%)
  1995. <         CASE -1
  1996. <           a$="Leichencluster"
  1997. <         CASE -2
  1998. <           a$="Defekter Cluster"
  1999. <         CASE -3
  2000. <           a$="Verwaltungsbereich"
  2001. <         CASE -4
  2002. <           a$="Verklebter Cluster"
  2003. <         ENDSELECT
  2004. <         out$(0)=@dec_hex_val$(cl%,6)+" "+a$
  2005. <       ENDIF
  2006. <       do_list
  2007. <     ENDIF
  2008. ---
  2009. >         MID$(out$(a%+1),b%,1)=x3$
  2010. >         INC anzcl%
  2011. >         cl%=@read_in_fat(cl%)
  2012. >       WEND
  2013. >       MID$(out$(a%+1),b%,1)=x2$
  2014. >       out$(0)=@dec_hex_val$(klickcl%,6)+" "+f$+" ("+STR$(anzcl%)+" Cluster)"+SPACE$(MAX(0,wc%-LEN(f$)-11-LEN(STR$(anzcl%))))
  2015. >     CASE -1
  2016. >       out$(0)=@dec_hex_val$(cl%,6)+" Leichencluster"
  2017. >     CASE -2
  2018. >       out$(0)=@dec_hex_val$(cl%,6)+" Defekter Cluster"
  2019. >     CASE -3
  2020. >       out$(0)=@dec_hex_val$(cl%,6)+" Verwaltungsbereich"
  2021. >     CASE -4
  2022. >       out$(0)=@dec_hex_val$(cl%,6)+" Verklebter Cluster"
  2023. >     ENDSELECT
  2024. >     do_list
  2025. 14432c14592
  2026. <   cc%=ed%-15    ! defekt= FFF0-FFF7
  2027. ---
  2028. >   cc%=ed%-15    ! defekt= FFF0-FFF7  !RS:BUG: nach ISO und MS-DOS nur $FFF7!!!
  2029. 14436,14437c14596,14597
  2030. <   IF bflag%>0
  2031. <     FOR i%=2 TO cpd%
  2032. ---
  2033. >   IF (bflag% AND 1)<>0
  2034. >     FOR i%=2 TO cpd%+1
  2035. 14442c14602
  2036. <         out(l$+"Cluster:"+STR$(i%))
  2037. ---
  2038. >         out(l$+"Cluster: "+STR$(i%))
  2039. 14446c14606
  2040. <     FOR i%=2 TO cpd%
  2041. ---
  2042. >     FOR i%=2 TO cpd%+1
  2043. 14455c14615
  2044. <         out(l$+"Cluster:"+STR$(i%))
  2045. ---
  2046. >         out(l$+"Cluster: "+STR$(i%))
  2047. 14467c14627
  2048. <   IF bflag%=1
  2049. ---
  2050. >   IF (bflag% AND 1)<>0
  2051. 14484c14644
  2052. <   LOCAL cc%,fat_tst%
  2053. ---
  2054. >   LOCAL cc%,fat_tst%,mediabyte|
  2055. 14485a14646,14670
  2056. >   IF drive%<2   ! Media-Byte bestimmen  !RS: Bestimmung in bios_block verschieben?
  2057. >     IF tpd%=40  ! 130-mm-Disketten (5,25 in) mit 40 Spuren
  2058. >       IF sid%=1 AND spt%=9 AND len_fat%=2 AND len_dir%=4 AND spc%=1 AND cpd%=351
  2059. >         mediabyte|=&HFC  ! Diskette ISO Typ 201
  2060. >       ELSE IF sid%=2 AND spt%=9 AND len_fat%=2 AND len_dir%=7 AND spc%=2 AND cpd%=354
  2061. >         mediabyte|=&HFD  ! Diskette ISO Typ 202
  2062. >       ELSE IF sid%=1 AND spt%=8 AND len_fat%=1 AND len_dir%=4 AND spc%=1 AND cpd%=313
  2063. >         mediabyte|=&HFE
  2064. >       ELSE IF sid%=2 AND spt%=8 AND len_fat%=1 AND len_dir%=7 AND spc%=2 AND cpd%=315
  2065. >         mediabyte|=&HFF
  2066. >       ELSE
  2067. >         mediabyte|=&HF9
  2068. >       ENDIF
  2069. >     ELSE        ! 90-mm-Disketten (3,5 in) oder 130-mm-Disketten (5,25 in) mit 80 Spuren
  2070. >       IF spt%>=18
  2071. >         mediabyte|=&HF0
  2072. >       ELSE
  2073. >         mediabyte|=&HF9
  2074. >       ENDIF
  2075. >     ENDIF
  2076. >   ELSE
  2077. >     mediabyte|=&HF8  ! Fest- oder Wechselplatte
  2078. >   ENDIF
  2079. >   write_in_fat(&HFF00 AND mediabyte|,0)  ! Media-Byte in die FAT eintragen
  2080. >   write_in_fat(&HFFFF,1)
  2081. 14487c14672
  2082. <   FOR fat_tst%=2 TO cpd%
  2083. ---
  2084. >   FOR fat_tst%=2 TO cpd%+1
  2085. 14499c14684
  2086. <   IF bflag%>0
  2087. ---
  2088. >   IF (bflag% AND 1)<>0
  2089. 14522c14707
  2090. <   x%=anf_fat1%  ! Start  der 1.FAT
  2091. ---
  2092. >   x%=anf_fat1%  ! Start  der 1. FAT
  2093. 14524c14709
  2094. <     status%=BIOS(4,1,L:fatbuf%,len_fat%,x%,drive%)
  2095. ---
  2096. >     status%=@rwabs(1,fatbuf%,len_fat%,x%,drive%)
  2097. 14526c14711
  2098. <       status%=BIOS(4,1,L:fatbuf%,len_fat%,x%,drive%)
  2099. ---
  2100. >       status%=@rwabs(1,fatbuf%,len_fat%,x%,drive%)
  2101. 14536c14721
  2102. <   ~@alrt(3,"Laufwerk hat nur eine FAT !",1,"Abbruch")
  2103. ---
  2104. >   ~@alrt(3,"Laufwerk hat nur eine FAT!",1,"Abbruch")
  2105. 14538c14723
  2106. < PROCEDURE fat_read1           ! 1.Sektor der FAT 1 einlesen
  2107. ---
  2108. > PROCEDURE fat_read1           ! 1. Sektor der FAT 1 einlesen
  2109. 14547c14732
  2110. < PROCEDURE fat_read2           ! 1.Sektor einer evtl. FAT 2 einlesen
  2111. ---
  2112. > PROCEDURE fat_read2           ! 1. Sektor einer evtl. FAT 2 einlesen
  2113. 14566c14751
  2114. <   IF bflag%=1
  2115. ---
  2116. >   IF (bflag% AND 1)<>0
  2117. 14575,14577c14760
  2118. <   WHILE b%>=bps%
  2119. <     SUB b%,bps%
  2120. <   WEND
  2121. ---
  2122. >   b%=b% MOD bps%
  2123. 14596,14597c14779
  2124. <     IF aa%<>ed%
  2125. <       aa%=MAX(2,aa%)
  2126. ---
  2127. >     IF aa%>=2 AND aa%<cpd%+2
  2128. 14601c14783
  2129. <       ~@alrt(3,"Keine weitere Verkettung",1,"Aha")
  2130. ---
  2131. >       ~@alrt(3,"Keine weitere Verkettung.",1," Aha ")
  2132. 14605c14787
  2133. <     ~@alrt(3,"* Clusterverkettung folgen *|Das geht nur mit Clustern|im Datenbereich!",1,"Aha")
  2134. ---
  2135. >     ~@alrt(3,"* Clusterverkettung folgen *|Das geht nur mit Clustern|im Datenbereich!",1," Aha ")
  2136. 14615c14797
  2137. <     j%=cluster%-1
  2138. ---
  2139. >     j%=cluster%
  2140. 14617c14799
  2141. <     WHILE @read_in_fat(j%)<>cluster%
  2142. ---
  2143. >     REPEAT
  2144. 14619,14620c14801,14804
  2145. <       EXIT IF j%=0
  2146. <     WEND
  2147. ---
  2148. >       IF j%=1
  2149. >         j%=cpd%+1
  2150. >       ENDIF
  2151. >     UNTIL @read_in_fat(j%)=cluster% OR j%=cluster%
  2152. 14622,14623c14806,14807
  2153. <     IF j%=0
  2154. <       ~@alrt(3,"Keine weitere Verkettung",1,"Aha")
  2155. ---
  2156. >     IF j%=cluster%
  2157. >       ~@alrt(3,"Keine weitere Verkettung.",1," Aha ")
  2158. 14630c14814
  2159. <     ~@alrt(3,"* Clusterverkettung folgen *|Das geht nur mit Clustern|im Datenbereich!",1,"Aha")
  2160. ---
  2161. >     ~@alrt(3,"* Clusterverkettung folgen *|Das geht nur mit Clustern|im Datenbereich!",1," Aha ")
  2162. 14652c14836
  2163. <       anf_fat2%=CARD{bpb%+10}  ! was wird hier stehen
  2164. ---
  2165. >       anf_fat2%=CARD{bpb%+10}  ! Beginn der 2. FAT, bei einer FAT deren Beginn
  2166. 14668,14670c14852,14857
  2167. <       anf_dir%=anf_fat2%+len_fat%
  2168. <       anf_fat1%=anf_fat2%-len_fat%
  2169. <       cpd%=MIN(cpd%,32767)
  2170. ---
  2171. >       anf_dir%=anf_dat%-len_dir%
  2172. >       IF (bflag% AND 2)<>0  ! Nur eine FAT vorhanden!
  2173. >         anf_fat1%=anf_fat2%
  2174. >       ELSE
  2175. >         anf_fat1%=anf_fat2%-len_fat%
  2176. >       ENDIF
  2177. 14672c14859
  2178. <       fat_size2%=len_fat%*bps%*spc%
  2179. ---
  2180. >       fat_size2%=len_fat%*bps%
  2181. 14675c14862
  2182. <         wwa%=@alrt(3,"FAT ist grösser als "+STR$(fat_size%)+" Bytes!|aktuelle Größe:"+STR$(fat_size2%)+" Bytes",1,wa$)
  2183. ---
  2184. >         wwa%=@alrt(1,"Größe des FAT-Puffer "+STR$(fat_size%)+" Byte.|Notwendige Größe "+STR$(fat_size2%)+" Byte.|FAT-Puffer auf diese Größe anlegen?",1,"Ja| Nein ")
  2185. 14677,14688c14864,14869
  2186. <           wwa%=@alrt(1,"FAT-Puffer auf diese Größe anlegen?",1,"Ja|Nein")
  2187. <           IF wwa%=1
  2188. <             ~MFREE(fatbuf%)
  2189. <             fatbuf%=MALLOC(fat_size2%)
  2190. <             IF fatbuf%=0
  2191. <               ~@alrt(3,ver$+"|Kein Speicher für FAT!",1,"Abbruch")
  2192. <               ~MFREE(buf%)
  2193. <               do_exit
  2194. <             ENDIF
  2195. <             fat_size%=fat_size2%
  2196. <           ELSE
  2197. <             len_fat%=fat_size% DIV (bps%*spc%)
  2198. ---
  2199. >           ~MFREE(fatbuf%)
  2200. >           fatbuf%=MALLOC(fat_size2%)
  2201. >           IF fatbuf%=0
  2202. >             ~@alrt(3,ver$+"|Kein Speicher für FAT!",1,"Abbruch")
  2203. >             ~MFREE(buf%)
  2204. >             do_exit
  2205. 14689a14871
  2206. >           fat_size%=fat_size2%
  2207. 14691c14873
  2208. <           do_exit
  2209. ---
  2210. >           len_fat%=fat_size% DIV bps%
  2211. 14695c14877
  2212. <       status%=BIOS(4,0,L:fatbuf%,len_fat%,anf_fat2%,drive%)
  2213. ---
  2214. >       status%=@rwabs(0,fatbuf%,len_fat%,anf_fat2%,drive%)
  2215. 14697c14879
  2216. <         status%=BIOS(4,0,L:fatbuf%,len_fat%,anf_fat2%,drive%)
  2217. ---
  2218. >         status%=@rwabs(0,fatbuf%,len_fat%,anf_fat2%,drive%)
  2219. 14720,14721c14902,14903
  2220. <   IF bflag%=0
  2221. <     FOR ci%=2 TO cpd%
  2222. ---
  2223. >   IF (bflag% AND 1)=0
  2224. >     FOR ci%=2 TO cpd%+1
  2225. 14758c14940
  2226. <     wwa%=@alrt(2,"Verzeichnisse einlesen?",2,"Ok|Nee")
  2227. ---
  2228. >     wwa%=@alrt(2,"Verzeichnisse einlesen?",2,"Ok| Nee ")
  2229. 14774c14956
  2230. <     ~@alrt(3,"Vorgang abgebrochen",1,"Aha")
  2231. ---
  2232. >     ~@alrt(3,"Vorgang abgebrochen.",1," Aha ")
  2233. 14782d14963
  2234. < ' BUGS: Funktioniert nur mit 2 Sektoren pro Cluster
  2235. 14789c14970
  2236. <   LOCAL a%,nr%,cl%,durch%,x%,y%,ogs%,clx%,lgx%,att%
  2237. ---
  2238. >   LOCAL a%,nr%,cl%,durch%,x%,y%,ogs%,clx%,lgx%,att%,n%
  2239. 14794c14975,14976
  2240. <     wurzel%=1
  2241. ---
  2242. >     wurzel%=TRUE
  2243. >     n%=1     ! im Wurzelverzeichnis Sektoren einzeln lesen
  2244. 14796a14979
  2245. >     n%=spc%  ! in Ordnern den ganzen Cluster lesen
  2246. 14801,14802c14984,14985
  2247. <   FOR durch%=1 TO 2                     ! 1.Durchgang=alle Namen merken
  2248. <     '                                   ! 2.Durchgang Ordner auflösen
  2249. ---
  2250. >   FOR durch%=1 TO 2                     ! 1. Durchgang=alle Namen merken
  2251. >     '                                   ! 2. Durchgang Ordner auflösen
  2252. 14805c14988
  2253. <     EXIT IF cluster%>cpd%
  2254. ---
  2255. >     EXIT IF cluster%>=cpd%+2
  2256. 14808c14991
  2257. <       status%=BIOS(4,0,L:buf%,2,lgs%,drive%)    ! 2 Sektoren lesen
  2258. ---
  2259. >       status%=@rwabs(0,buf%,n%,lgs%,drive%)     ! Sektor oder Cluster lesen
  2260. 14818,14820d15000
  2261. <         '
  2262. <         y%=BYTE{x%}                             ! 1.Zeichen
  2263. <         '
  2264. 14822a15003,15004
  2265. >         y%=BYTE{x%}                             ! 1. Zeichen
  2266. >         '
  2267. 14836c15018
  2268. <               IF (srep%>0 AND y%=&HE5) OR (srep%=0 AND y%<>&HE5) OR ((att% AND 16)>0 AND y%<>&HE5)
  2269. ---
  2270. >               IF (srep%>0 AND y%=&HE5) OR (srep%=0 AND y%<>&HE5) OR ((att% AND 16)<>0 AND y%<>&HE5)
  2271. 14840c15022
  2272. <                 sec%(total%)=lgs%+ABS(x%-buf%>=bps%)
  2273. ---
  2274. >                 sec%(total%)=lgs%+(x%-buf%)/bps%
  2275. 14845c15027
  2276. <               IF (att% AND 16)>0 AND y%<>&HE5  ! Ordner?
  2277. ---
  2278. >               IF (att% AND 16)<>0 AND y%<>&HE5  ! Ordner?
  2279. 14852c15034
  2280. <                 status%=BIOS(4,0,L:buf%,2,lgs%,drive%)
  2281. ---
  2282. >                 status%=@rwabs(0,buf%,n%,lgs%,drive%)
  2283. 14864c15046
  2284. <       UNTIL x%>=buf%+2*bps% OR total%>=max_files% OR abb%>0
  2285. ---
  2286. >       UNTIL x%>=buf%+n%*bps% OR total%>=max_files% OR abb%>0
  2287. 14866c15048
  2288. <       IF wurzel%=0
  2289. ---
  2290. >       IF wurzel%=FALSE
  2291. 14869,14870d15050
  2292. <       EXIT IF abb%<>0 OR cluster%<0 OR (wurzel%=0 AND cluster%=0)
  2293. <       EXIT IF cluster%>=cd% OR (cluster%>spd% AND cluster%<cc%)
  2294. 14872,14874c15052,15056
  2295. <       EXIT IF (wurzel%<>0 AND lgs%>=anf_dat%-2) OR total%>=max_files%
  2296. <       IF wurzel%>0
  2297. <         ADD lgs%,2
  2298. ---
  2299. >       EXIT IF abb%<>0 OR total%>=max_files%
  2300. >       EXIT IF wurzel%=FALSE AND (cluster%<2 OR cluster%>=cpd%+2)
  2301. >       EXIT IF wurzel%=TRUE AND lgs%+1>=anf_dat%
  2302. >       IF wurzel%=TRUE
  2303. >         INC lgs%
  2304. 14986c15168
  2305. <   ~@alrt(5,"SED Fehler: "+STR$(ERR)+" ",1,"Abbruch")
  2306. ---
  2307. >   ~@alrt(5,"SED-Fehler "+STR$(ERR)+"! ",1,"Abbruch")
  2308. 15014c15196
  2309. <     IF (OB_STATE(ram.konv%,distempl&) AND 1)>0
  2310. ---
  2311. >     IF (OB_STATE(ram.konv%,distempl&) AND 1)<>0
  2312. 15030c15212
  2313. <     ~@alrt(3,"Kann 'Templemon' nicht finden",1,"Abbruch")
  2314. ---
  2315. >     ~@alrt(3,"Kann 'Templemon' nicht finden.",1,"Abbruch")
  2316. 15038c15220
  2317. <     '     L:  Befehlsnummer ?
  2318. ---
  2319. >     '     L:  Befehlsnummer?
  2320. 15040c15222
  2321. <     '     L:  Codetabelle ?
  2322. ---
  2323. >     '     L:  Codetabelle?
  2324. 16320c16502
  2325. <   '            ⇧ ist wichtig wegen mehr Bytes bei Sektor lesen - max 1024 ?
  2326. ---
  2327. >   '            ⇧ ist wichtig wegen mehr Bytes bei Sektor lesen - max 1024?
  2328. 16755,16785d16936
  2329. < ' 1227,1235d1229
  2330. < ' <         ELSE
  2331. < ' <           kling
  2332. < ' <         ENDIF
  2333. < ' <       ELSE
  2334. < ' <         IF key%>0
  2335. < ' <           ~OBJC_EDIT(tree%,edit_obj%,key%,idx&,2,idx&)  ! EDCHAR
  2336. < ' <         ENDIF
  2337. < ' <         IF (next_obj%<>0) AND ((next_obj%<>edit_obj%) OR (cont&=0))
  2338. < ' <           ~OBJC_EDIT(tree%,edit_obj%,0,idx&,3,idx&)     ! EDEND
  2339. < ' 1237a1232,1237
  2340. < ' >       IF key%>0
  2341. < ' >         ~OBJC_EDIT(tree%,edit_obj%,key%,idx&,2,idx&)  ! EDCHAR
  2342. < ' >       ENDIF
  2343. < ' >       IF (next_obj%<>0) AND ((next_obj%<>edit_obj%) OR (cont&=0))
  2344. < ' >         ~OBJC_EDIT(tree%,edit_obj%,0,idx&,3,idx&)     ! EDEND
  2345. < ' >       ENDIF
  2346. < ' -------------------------------- Schnapp ---------------------------------
  2347. < ' Diese Änderung macht es möglich, daß man in Dialogen auch []{} und @
  2348. < ' eingeben kann, also alles, was im Zusammenhang mit der Alternate-Taste
  2349. < ' ausgegeben wird! Das war vorher nur per Alt-Ziffernblock möglich, da bei
  2350. < ' gedrückter Alternate-Taste nur die Shortcuts überprüft wurden aber kein
  2351. < ' OBJC_EDIT mehr stattfand! Das 'kling', wenn kein passender Shortcut
  2352. < ' (Underline) vorhanden war, fällt ganz weg.
  2353. < '
  2354. < ' Kommentar CB: Diese Änderung hatte ich testweise eingebaut, sie führte
  2355. < '               aber aus irgendeinem Grund dazu, daß überhaupt keine
  2356. < '               Tasten mehr in Dialogen akzeptiert wurden... 8-(
  2357. < ' -------------------------------- Schnipp ---------------------------------
  2358. < '
  2359. < ' -------------------------------- Schnipp ---------------------------------
  2360. 16899c17050
  2361. < ' +             ~@alrt(1,alrt_text$,1,"OK")
  2362. ---
  2363. > ' +             ~@alrt(1,alrt_text$,1," OK ")
  2364.